표제지용

Size: px
Start display at page:

Download "표제지용"

Transcription

1

2 MicroChip bit MicroController 머리말 1988년세계최초로상업용 OTP타입의 8비트마이크로컨트롤러인 PICC5X 를출시한이래로마이크로칩은차별화된제품의성능, 신뢰성및솔루션을바탕으로현재시장점유율및매출규모에있어서세계 1위의 8비트마이크로컨트롤러공급업체의입지를달성하고있습니다. 이러한 8비트마이크로컨트롤러시장에서단기간에이뤄낸눈부신성과를바탕으로최근마이크로컨트롤러시장의고사양요구를반영하여, 2004 년 비트마이크로컨트롤러를출시하였습니다. 특히 비트마이크로컨트롤러인 PIC24 제품군과함께연산능력이뛰어난 DSP 엔진이탑재된디지털시그널컨트롤러인 dspic DSC 제품군을출시함으로써임베디드엔지니어들로부터많은각광을받고있습니다. 하지만출시된지불과 3년의짧은기간으로인해아직까지출판된국내서적이없어서많은사용자들이불편해하고있는현실을감안하여이책을집필하게되었습니다. 현재마이크로컨트롤러기초 / 응용실습을고려하고있는엔지니어또는학생뿐만아니라마이크로칩 8/비트제품군을적용한경험이있거나현재개발또는향후개발을고려하고있는분들에게이책이조금이나마도움이되었으면합니다. 기존의대다수마이크로컨트롤러관련서적들에서볼수있었던데이터쉬트에대한설명은원본을참조하는것이도움이될것으로판단되어가능한한지양하고자하였으며, 비록졸필이지만여러분들에게빠르고실질적인도움을드리고자마이크로컨트롤러의각주변장치 (Peripheral) 들에대한응용실습을위주로집필하려노력하였습니다. 또한, 이서적에포함된 M 데모보드 (PCB) 및같이부착된 dspic33fj256gp710 의마이크로칩고성능 비트마이크로컨트롤러를통해여러분들이직접보드를제작해실습할수있도록마이크로칩본사로부터전액지원받아마케팅차원에서무상으로제공할수있게되었으며, 교재출판비용도최소화하고자노력하였습니다. 그리고, 부착된 dspic MCU 내에시리얼부트로더펌웨어를미리프로그래밍을하였습니다. 이를통해별도의프로그래머나디버거등의개발장비가없어도시리얼부트로더용윈도우응용프로그램을통해 dspic MCU 플 2

3 PREFACE : 머리말 래쉬롬을자체프로그래밍할수있는기능까지넣어이번책출간에최선을다해준비하였습니다. 다만우려스러운점은이번에출간되는특별한정판에대해서만 M 데모보드가무상제공된다는점과또한, 첨부된 M 데모보드조립후의 A/S 지원이불가한점에대해양해말씀올립니다. 이번출간을통해국내에마이크로칩 비트제품군인 PIC24 및 dspic DSC 제품군이널리확산될수있기를바라오며, 이후더다양하고보다훌륭한서적들이널리출간되고확산될수있는작은초석이되기를바랍니다. 이서적이출간될수있도록많은지원과격려를아낌없이보내주신한국마이크로칩한병돈사장님과모든임직원분들께고개숙여감사를드리오며, 본서출판에많은희생을감수하시고밀어주신지앤북송민호사장님과 M 데모보드및 비트마이크로컨트롤러를무상으로제공해준마이크로칩본사관계자여러분께지면을통해서나마깊은감사의말씀드립니다. 끝으로본서적에포함된모든응용프로그램과실습소스코드는한국마이크로칩홈페이지 ( 에서다운로드받을수있으며기타정보도얻을수있습니다. 2007년 5월 20일한국마이크로칩 CAE부 서한석, 최영섭올림 3

4 MicroChip bit MicroController CONTENTS 제 1 장 마이크로칩회사소개 마이크로칩제품군 비트 PIC 마이크로프로세서 비트 PIC 마이크로프로세서 비트 dspic Digital Signal Controllers(DSC) 아날로그및인터페이스제품 직렬 EEPROM 보안데이터제품 마이크로칩개발툴 비트소프트웨어개발툴 MPLAB C30 C 컴파일러 Assembler / Linker / Librarian MPLAB SIM Software Simulator MPLAB VDI(Visual Device Initializer) 주변장치드라이버라이브러리 수학 (Math) 라이브러리 DSP 알고리즘라이브러리 비트하드웨어개발툴 MPLAB ICD2 (In Circuit Debugger / Programmer) MPLAB REAL ICETM (In Circuit Emulation System) MPLAB PM3 (Device Programmer) Explorer Development Board dspicdemtm 80 pin Starter Development Board dspicdem 1.1 General Purpose Development Board 모터컨트럴개발시스템 PICDEMTM MC LV Motor Control Development Board dspicdem SMPS Buck Development Board dspicdem.nettm Connectivity Development Board dspicdem 2 Development Board dspicdem 28 pin Starter Development Board 33 4

5 CONTENTS : 차례 제 2 장마이크로칩 비트마이크로컨트롤러구조 마이크로칩 비트제품패밀리소개 PIC24F 제품군 PIC24H 제품군 dspic30/33f 제품군 dspic30f 제품군 dspic33f 제품군 마이크로칩 비트마이크로컨트롤러구조및주변장치개요 Havard Architecture 명령어파이프라인 프로그램메모리구조 비트프로그래머모델구조 데이터메모리구조 마이크로칩 비트마이크로컨트롤러용라이브러리소개 음성어플리케이션을위한라이브러리 음성인코딩 / 디코딩라이브러리 소음억제라이브러리 음향반향제거라이브러리 라인에코제거라이브러리 음성인식 통신 (Connectivity) 라이브러리 TCP/IP 프로토콜스택 CMX사의 MicroNETTM TCP/IP 스택 소프트모뎀라이브러리 기타어플리케이션라이브러리 암호화라이브러리 (Encryption Libraries) FAT 파일시스템 모터컨트롤어플리케이션소프트웨어 마이크로칩웹세미나소개 57 제 3 장마이크로칩개발툴 MPLAB IDE MPLAB IDE 소개 다운로드방법 설치 MPLAB ICD2 디버거 MPLAB ICD2 소개 65 5

6 MicroChip bit MicroController MPLAB ICD2 설치 MPLAB ICD2 사용법 디버거설정 디버거사용법 MPLAB C30 컴파일러 MPLAB C30 컴파일러소개 MPLAB C30 컴파일러다운로드방법 MPLAB C30 컴파일러설치 MPLAB C30 컴파일러기초 C30 컴파일러변수기초 C30 컴파일러데이터형 전처리문 연산자 (Operators) 제어문 (Control Statement) 함수 배열 (Array) 포인터 (Pointer) 구조체 (Structure) 와공용체 (Union) 나열형 (Enumerated) 변수 C30 컴파일러의속성 (Attribute) C30 컴파일러의 I/O 포트액세스 인터럽트함수 (Interrupt Service Routine) Explorer 개발보드 보드설명 보드회로도 블록다이어그램 PIM 소켓및디바이스마운트보드회로도 각종커넥팅회로도 스위치, 멀티플렉서, 포텐셔미터부회로도 EEPROM, 온도센서, LED, 오실레이터, 전원공급부회로도 USB 및 UART 부회로도 LCD 및 LCD 커넥터부회로도 기타 DSP 라이브러리 DSP 알고리즘개발툴 dspicworkstm Data Analysis and DSP Software Digital Filter Design Tool 어플리케이션노트 MPLAB Real ICE 소개 201 6

7 제 4 장모듈별실습예제 Example 프로젝트열기및보드테스트 204 CONTENTS : 차례 Explorer 데모보드테스트및 Example 프로젝트실습 개발환경만들기 ( 이미설치된소프트웨어툴이있다면이과정은무시한다 ) Explorer 데모보드테스트및 Example 프로젝트실습 새프로젝트만들기 PIC24FJ 패밀리프로젝트만들기 MPLAB IDE 실행하기 디바이스선택 새로운프로젝트만들기 새로운소스코드만들고프로젝트에넣기 dspic33fj 패밀리프로젝트만들기 외부함수, 외부변수, 어셈블러혼용하는새프로젝트만들기 외부함수 / 변수만들어프로젝트에넣기 오실레이터클럭설정예제 오실레이터설정 제 1 오실레이터 (Primary Oscillator) : 외부클럭소스 제 2 오실레이터 (Secondary Oscillator) : 외부클럭소스 FRC 오실레이터 (Fast Internal RC Oscillator) : 내부클럭소스 LPRC 오실레이터 (Low Power Internal RC Oscillator) : 내부클럭소스 오실레이터설정레지스터설명 Oscillator 관련 Configuration Bit 설정 OSCCON : 오실레이터컨트롤레지스터 CLKDIV : 클럭분주설정레지스터 PLLFBD : PLL Feedback Divisor Register(PIC24H 패밀리, dspic33fj 패밀리 ) OSCTUN : FRC Oscillator Tunning Register 클럭스위칭동작 (Clock Switching Operation) 오실레이터스위칭 (Oscillator Switching) 동작순서 Fail Safe Clock Monitor(FSCM) 동작주파수 FOSC 계산예제 dspic33fj / PIC24H 패밀리 FOSC 계산예제 PIC24FJ 패밀리 FOSC 계산예제 도즈 (DOZE) 모드동작 오실레이터설정예제 제1오실레이터 (Primary Oscillator) 설정예 오실레이터클럭스위칭실습 (dspic33fj256 GP710 사용 ) I/O 포트실습예제 I/O 포트동작설명 258 7

8 MicroChip bit MicroController 다기능 I/O 포트 I/O 포트오픈드레인컨트롤기능 I/O 포트컨트롤레지스터 TRISx I/O 입출력방향설정레지스터 (x = A, B, C, D, E, F, G, ) PORTx I/O 포트 x 입출력데이터레지스터 (x = A, B, C, D, E, F, G, ) LATx I/O 포트 x 데이터래치레지스터 (x = A, B, C, D, E, F, G, ) ODCx I/O 포트오픈드레인컨트롤설정레지스터 (x=a, B, C, D, E, F, G, ) I/O 포트입출력실습 I/O 포트출력실습 (PIC24FJ128GA010 사용 ) I/O 포트입력 / 출력실습 (PIC24FJ128GA010) 인터럽트실습예제 인터럽트방식설명 인터럽트동작설명 인터럽트네스팅 (Nesting) 기능 인터럽트관련레지스터설명 SR : CPU 상태레지스터 ( 여기서는인터럽트에해당하는것만설명 ) CORCON : CORE 컨트롤레지스터 INTCON1 : 인터럽트컨트롤레지스터 INTCON2 : 인터럽트컨트롤레지스터 IFS0 : 인터럽트플래그상태레지스터 IFS1 : 인터럽트플래그상태레지스터 IFS2 : 인터럽트플래그상태레지스터 IFS3 : 인터럽트플래그상태레지스터 IFS4 : 인터럽트플래그상태레지스터 IEC0 : 인터럽트사용설정레지스터 IEC1 : 인터럽트사용설정레지스터 IEC2 : 인터럽트사용설정레지스터 IEC3 : 인터럽트사용설정레지스터 IEC4 : 인터럽트사용설정레지스터 IPC0~17 : 인터럽트우선순위설정레지스터 0~ INTTREG : 인터럽트컨트롤 & 상태레지스터 (dspic33fj 패밀리만있다 ) 인터럽트동작설정및인터럽트서비스루틴설명 인터럽트동작설정방법 인터럽트실습 인터럽트우선순위동작실습 (PIC24FJ128GA010 사용 ) 타이머실습예제 타이머1 실습 타이머1 설명 타이머1 설정레지스터 310 8

9 CONTENTS : 차례 타이머 1 예제 : 1초타이머만들기 (PIC24FJ1286A010 사용 ) 타이머2, 타이머3과타이머 4, 타이머5 실습 타이머x 설정레지스터 (x = 2, 4, y = 3, 5) 타이머y 설정레지스터 (x = 2, 4, y = 3, 5) 타이머x/y 예제 : 1초타이머만들기 (x = 2, 4, y = 3, 5) Input Capture 실습예제 Input Capture 설명 Input Capture 설정레지스터 (ICxCON, x= 1,2,3, ) Input Capture 실습 (PIC24FJ128GA010 사용 ) Output Compare 실습예제 (PIC24FJ128GA010 사용 ) Output Compare 설명 Output Compare 동작모드설명 싱글비교매치모드 (Single Compare Match Mode) 듀얼비교매치모드 (Dual Compare Match Mode) 심플 (Simple) PWM 모드 Output Compare 설정레지스터 (OCxCON, x= 1,2,3, ) Output Compare 실습 SPI 실습예제 SPI 모듈설명 SPI 모듈설정레지스터 SPIxSTAT 설정, 상태레지스터 (x = 1, 2) SPIxCON1 설정, 상태레지스터 (x = 1, 2) SPIxCON2 설정, 상태레지스터 (x = 1, 2) SPI 모듈의각모드별동작설명 비트 / 비트동작 마스터 (Master) / 슬레이브 (Slave) 모드동작 프레임 (Frame) 모드동작 SPI 모듈실습 UART 실습예제 UART 모듈설명 UART 관련레지스터설명 UxMODE : UARTx 모드설정레지스터 (x = 1, 2) UxSTA : UARTx 상태, 컨트롤레지스터 (x = 1, 2) UARTx 모듈전송속도보오레이트 (Baud Rate) 계산법설명 UART 통신실습 (dspic33fj256gp710 사용 ) A/D 컨버터실습예제 ADC 모듈설명 ADC 모듈설정레지스터 470 9

10 MicroChip bit MicroController ADxCON1 설정, 상태레지스터 (x = 1, 2) ADxCON2 설정, 상태레지스터 (x = 1, 2) ADxCON3 설정, 상태레지스터 (x = 1, 2) ADxCON4 설정, 상태레지스터 (x = 1, 2) ADxCHS123 설정, 상태레지스터 (x = 1, 2) ADxCHS0 설정, 상태레지스터 (x = 1, 2) ADxCSSL 설정, 상태레지스터 (x = 1, 2) ADxCSSH 설정, 상태레지스터 (x = 1, 2) AD1PCFGH 설정, 상태레지스터 (x = 1, 2) AD1PCFGL 설정, 상태레지스터 (x = 1, 2) ADC 모듈의각모드별동작설명 ADC 모듈실습 I2C(Inter-Integeated Circuit) 실습예제 I2C 모듈설명 I2C 기본신호설명 I2C 인터페이스동작예 I2C 관련레지스터설명 I2CxCON : I2Cx 모듈동작설정레지스터 (x = 1, 2) I2CxSTAT : I2Cx 모듈상태레지스터 (x = 1, 2) 기타다른 I2Cx 모듈관련레지스터 (x=1, 2) I2Cx 모듈전송속도보오레이트 (Baud Rate) 계산법설명 I2C 통신실습 (dspic33fj256gp710 사용 ) DMA(Direct Memory Access) 실습예제 DMA 모듈설명 DMA 모듈설정레지스터 DMAxCON : DMA 모듈동작설정레지스터 DMAxREQ : DMAx 채널 IRQ 선택레지스터 DMAxSTA : DMAx 채널 RAM 스타트주소설정레지스터 A DMAxSTB : DMAx 채널 RAM 스타트주소설정레지스터 B DMAxPAD : DMAx 채널주변장치설정어드레스레지스터 DMAxCNT : DMAx 채널데이터전송카운트레지스터 DMACS0 : DMA 컨트롤러상태레지스터 DMACS1 : DMA 컨트롤러상태레지스터 DSADR : 가장최근사용한 DMA RAM 어드레스레지스터 DMA 컨트롤러의각모드별설명 DMA 컨트롤러의동작설명 DMA 채널동작모드설명 DMA 컨트롤러동작설명 DMA 모듈실습 (dspic33fj256gp710 사용 )

11 CONTENTS : 차례 4.14 PMP(Parallel Master Port) 실습예제 (PIC24FJ 패밀리에만해당 ) PMP 모듈설명 PMP 모듈설정레지스터 PMCON : PMP 모듈동작설정레지스터 PMMODE : PMP 동작모드설정레지스터 PMADDR : PMP 어드레스레지스터 PMAEN( 구버전 : PMPEN) : PMP 사용가능설정레지스터 PMSTAT : PMP 상태레지스터 PADCFG1: PMP 관련포트설정레지스터 PMP 모듈의각예제별설명 기존 PSP(Legacy Parallel Slave Port) 예제동작설명 어드레서블 PSP(Addressable Parallel Slave Port) 예제동작설명 디멀티플렉스어드레싱마스터모드 : 2개칩셀렉트, 읽기, 쓰기, PMA<13:0>, PMD<7:0> 예제동작설명 멀티플렉스하위 8비트어드레싱마스터모드 : 2개칩셀렉트, 읽기, 쓰기, PMA<13:8>, PMD<7:0>, PMALL 예제동작설명 멀티플렉스상 / 하위 비트어드레싱마스터모드 : 2개칩셀렉트, 읽기, 쓰기, PMA<13:8>, PMD<7:0>, PMALL, PMALH 예제동작설명 각예제별 PMP 모듈동작설명 비트캐릭터 LCD 모듈컨트롤동작설명 비트캐릭터 LCD 모듈컨트롤커맨드 / 응용함수설명 Flash 메모리프로그래밍실습예제 내부플래시롬메모리설명 플래시메모리컨트롤레지스터 플래시프로그램메모리프로그래밍프로세스설명 플래시프로그램메모리프로그래밍동작순서 플래시메모리프로그래밍실습 649 APPENDIX 669 부록 1. Bootloader( 부트로더 ) 실습예제 670 부록 1.1 부트로더기능설명 670 부록 1.2 부트로더실습예제 (Explorer 보드와 ICD2 등의프로그래머필요 ) 673 부록 2. 마이크로칩 M 데모보드 681 부록 2.0 마이크로칩 M 데모보드사용시주의사항 681 부록 2.1 마이크로칩 M 데모보드설명 681 부록 dspic33fj256gp710 디바이스주변회로 ( 전체회로도참조 ) 682 부록 클럭회로 ( 전체회로도참조 ) 683 부록 전원부회로 ( 전체회로도참조 )

12 MicroChip bit MicroController 부록 MCU 전체핀확장커넥터회로 ( 전체회로도참조 ) 684 부록 I2C 시리얼 EEPROM 회로 ( 전체회로도참조 ) 684 부록 SPI 시리얼 EEPROM 회로 ( 전체회로도참조 ) 685 부록 LED 회로 ( 전체회로도참조 ) 685 부록 스위치회로 ( 전체회로도참조 ) 686 부록 각종개발장비연결회로 ( 전체회로도참조 ) 687 부록 UART( 시리얼부트로더 ) 관련연결회로 ( 전체회로도참조 )(MAX232 사용가능 ) 688 부록 VR( 가변저항 :R6) 연결회로 ( 전체회로도참조 ) 689 부록 마이크로칩 M 데모보드실제사진 689 부록 마이크로칩 M 데모보드부품리스트 690 부록 2.2 M 데모보드실습방법 ( 필독 ) 691 부록 M 데모보드와시리얼부트로더를사용한 4장예제실습설명 691 부록 M 데모보드와시리얼부트로더를사용한 4.10장 UART 실습예제 692 부록 3. 마이크로칩기술세미나소개 697 찾아보기

13 CHAPTER 1.1 마이크로칩회사소개 1.2 마이크로칩제품군 1.3 마이크로칩개발툴

14 MicroChip bit MicroController 1.1 마이크로칩회사소개 과거마이크로컨트롤러는시스템에설계해넣기가쉽지않았다. 이러한제품들은어느정도의통합기능을제공했지만적절한규모의경제를달성하기위해서제조중에디바이스에프로그램코드를마스킹해야했다. 마스크프로그램 (mask programmed) 디바이스는높은 NRE(Non Recurring Engineering) 비용이요구되며, 이로인해많은수의디바이스로비용을상쇄할수있도록디바이스를대량으로생산해야했다. 이러한마스크프로그램방식은소량애플리케이션에서사용할수없었을뿐만아니라새로운마스크를만들지않으면코드업데이트와버그수정도불가능했다. 많은엔지니어들이여러접근방식을도입했는데, 이중가장인기있던방식은범용마이크로컨트롤러와외부 EPROM 및 I/O를함께사용하는방법이었다. 이방법은설계유연성과함께소형설계에있어현실적인비용구조를제공했다. 하지만이와동시에훨씬더많은설계노력이필요했으며보드공간을많이차지했고, 이는비용상승으로이어졌다. 마이크로컨트롤러에대한엔지니어들의인식은 1988년마이크로칩이 PICC5X의 CMOS 버전을발표하면서일대전환을맞이했다. 이디바이스는이해하기쉽고프로그래밍이용이했으며가격도저렴했다. 무엇보다중요한점은필드프로그래밍이가능했다는것이다. 이러한표준 1회프로그램 (OTP) 마이크로컨트롤러를사용하면단순하고저렴한프로그래머를사용해생산라인에서코드를넣을수있다. PICC5X 제품군을통해기업들의제품출시가더용이해졌고, 생산에서버그수정과업그레이드를거의즉각적으로구현할수있게되었으며, 다양한애플리케이션에서하나의범용디바이스를사용함으로써비축해야하는부품의수를줄일수있었다. 이러한개념은곧엔지니어링커뮤니티에널리도입됐으며 1989년마이크로칩 OTP PIC 마이크로컨트롤러출하량은 100만개를돌파했다. 마이크로컨트롤러개발툴의비용과복잡성이화두였던 1980년대후반과 1990년대초반, 마이크로칩은 PICC5X 제품군출시를통해단순하고안정적인저가용소프트웨어개발툴을선보였다. 이어 1991년마이크로칩은세계최초의 Windows 3.0 기반개발시스템인 MPLAB IDE(Integrated Development Environment) 를선보였다. 강력한 RISC 아키텍처, 단순한프로그래밍모델, 그리고통합 I/O를갖춘 PIC 마이크로컨트롤러는유닛당비용이낮은마스크프로그램마이크로컨트롤러의주영역이었던대량애플리케이션에서사용되기시작했다. 1992년마이크로칩은첫번째 ROM(Read Only Memory) 기반 CMOS PIC 마이크로컨트롤러를발표했다. 이로써기업들은최초생산가동에서 OTP 디바이스를사용, 비용절감을위해공장에서프로그래밍되는 ROM 마이크로컨 14

15 1.1 마이크로칩회사소개 트롤러로옮겨가기전에제품의완전한현장테스트와버그수정, 기능강화를구현할수있게됐다. 1993년마이크로칩이업계최초로인헨스드플래시 (Enhanced Flash) 마이크로컨트롤러를출시하면서유연성은한층높아졌다. 이디바이스는인쇄회로기판에납땜한후플래시메모리를통해손쉽게프로그래밍이가능했기때문에프로그래밍단계를생산공정의후반으로옮기고, 하나의보드에여러다른디바이스를함께프로그래밍하는것이가능해졌다. 또한플래시메모리덕분에 PIC 마이크로컨트롤러를현장에서재프로그래밍할수있었기때문에제품이고객에게인도된이후에도업데이트가가능했다. 1990년대에는보드면적의중요성이갈수록커졌다. 1996년등장한더작은크기의새로운패키지를통해마이크로칩은 8핀패키지로마이크로컨트롤러를제공하는최초의기업이됐다. PIC 마이크로컨트롤러의사용은계속해서빠른속도로확장됐으며, 1999년마이크로칩은 PIC 마이크로컨트롤러출하량 10억개돌파를발표하기에이르렀다. 2001년까지마이크로칩에서 20만개이상의 PIC 마이크로컨트롤러개발키트가판매됐다. PIC 마이크로컨트롤러제품군의개발은초기 PIC 마이크로컨트롤러아키텍처의장기간에걸친성공으로특징지을수있다. RISC 아키텍처, 별도의명령어및데이터버스 ( 하버드아키텍처 ) 와짧은 2단계파이프라인을통해 PIC 마이크로컨트롤러는거의매주기마다명령어를실행할수있다. 1999년에는향상된아키텍처를제시한 PIC18CXXX 제품군이출시됐다. 이전까지, 그리고이후개발된모든 PIC 마이크로컨트롤러와마찬가지로 PIC18CXXX는최초의 PICCXXX 제품군과완전한하위호환성을제공했다. 시장조사기관인가트너데이터퀘스트에따르면 PIC 마이크로컨트롤러의여세에힘입어마이크로칩은세계 1위의 8비트마이크로컨트롤러공급업체로부상했다. 1996년만해도 5 위공급업체였던마이크로칩의이러한성과는불과몇년만에이뤄진것이다. 현재애널리스트들은 8비트마이크로컨트롤러애플리케이션의지속적인확장을예상하고있으며, 마이크로칩은혁신을통해다양한애플리케이션에계속해서 PIC 마이크로컨트롤러를제공하고있다. 2004년마이크로칩은세계최소형마이크로컨트롤러인 PIC10F를발표했다. 6핀 SOT 23 패키지로제공되는이제품은플래시메모리를탑재했고 1회용에가까울정도로경제적인새로운지능형전자애플리케이션의개념을구현할수있게해준다. 또다른한쪽에서는 DSP와 비트마이크로컨트롤러의장점만단일디바이스에결합한 dspic 디지털신호컨트롤러제품군이출시됐다. 오늘날 30억개이상의 PIC 마이크로컨트롤러가사용되고있으며, 이탁월한마이크로컨트롤러는사실상거의모든제품에내장되어있다고할수있다. 15

16 MicroChip bit MicroController 마이크로칩연역 1989 세계최초로필드프로그래머블마이컴인 OTP 출시 1990 일백만개의 PICmicro 마이컴판매달성 1994 FLASH PICmicro 마이컴출시 1996 세계최초로 8핀마이컴출시 비트마이컴시장점유율세계 2위달성 1999 고성능 8비트마이컴인 PIC18FXXX 출시 2001 세계적으로인증된 Telcom 사인수및아날로그제품군확장 2002 PowerSmart 인수및 Fuel Guaging 솔루션제공 (Duracell 반도체설계회사 ) 비트마이컴시장점유율세계 1위달성 2004 비트마이컴인 dspic 출시 / 6핀의 8비트마이컴출시 억개의 PICmicro 마이컴판매달성 현재하루 170 만개의마이크로컨트롤러를출하하고있다. 1.2 마이크로칩제품군 아래그림은전형적인임베디드제어보드및신호의흐름을보여주고있다. 온도센서, 압력센서, 모션센서등의아날로그센서신호들이증폭및필터링되어디지털신호로변환되어마이크로컨트롤러로의입력신호가된다. 이외에도전원관리블럭, 파워드라이버, 다양한버스구조, 주변장치및통신프로토콜등의아날로그신호등이마이크로컨트롤러와인터페이스를이루고있다. 각각의블럭들은마이크로칩에의해제공되고있는제품및기능들을개괄적으로보여주고있다.

17 1.2 마이크로칩제품군 비트 PIC 마이크로프로세서마이크로칩의풍부한주변장치를갖추고있는 8비트 PIC 마이크로프로세서는플래시, OTP(One-Time Programmable) 및 ROM 프로그램메모리옵션등을통해다양한제품을제공하고있다. RISC 코어를기본으로설계된이들제품군은거의코드변경없이 6핀에서 100핀으로손쉽게마이그레이션할수있도록공통의아키텍처를채용하고있다 비트 PIC 마이크로프로세서 비트 PIC24 마이크로프로세서는 8비트 PIC18 제품군의성능, 주변장치및기능을토대로설계되었으며최대 40MIPS 의성능을발휘한다. 비트제품개발언어인 MPLAB C30 컴파일러를통해높은처리성능과 C 코드집적도를제공한다. PIC24F/PIC24H 시리즈는소프트웨어및 MPLAB IDE와완벽하게호환되기때문에요구사항의변화에따라손쉽게마이그레이션할수있는것은물론, 기존의리소스를그대로활용하면서애플리케이션에성능및기능을추가할수있다 비트 dspic Digital Signal Controllers(DSC) 비트고성능 dspic DSC는마이크로프로세서가가진강점과 DSP의강점을단일코어로통합한디바이스다. 최대 40MIPS 의속도를제공하는이제품은 C 프로그래밍작업의효율성을높이도록설계되었으며플래시프로그램메모리, 데이터 EEPROM, 강력한주변 17

18 MicroChip bit MicroController 장치및다양한소프트웨어라이브러리를갖추고있다. 툴및디자인환경에서친숙한마이크로컨트롤러의느낌을그대로제공하고있는 dspic DSC는모터컨트롤및전력변환, 음성 / 오디오, 인터넷 / 모뎀연결, 통신, 암호화, 고속감지및자동차애플리케이션을위해개발되었다고말할수있다. 다음그림은마이크로칩의 8/비트 MCU 및 DSC(Digital Signal Controller) 제품군요약및응용분야에따른구분을보여주고있다. [8/ 비트 MCU 및 DSC 제품군요약 ] 18

19 1.2 마이크로칩제품군 [ 응용분야에따른 8/ 비트 MCU 및 DSC 제품군분류 ] 아날로그및인터페이스제품마이크로칩은마이크로컨트롤러외에도임베디드시스템을위한아날로그및인터페이스제품군으로써선형, 복합신호, 전원관리, 온도관리, 배터리관리및인터페이스장비등을포함해포괄적인포트폴리오를제공하고있다. 특정유형의제품과수천개에달하는제품사양에대한보다자세한정보는마이크로칩웹사이트를통해제공받을수있으므로, 여기에서는주요사양만소개하기로하겠다. 19

20 MicroChip bit MicroController 20

21 마이크로칩제품군

22 MicroChip bit MicroController 직렬 EEPROM 마이크로칩은 128비트에서 1M 비트에이르는집적도, 1.8V까지가능한작동전압, 다양한버스프로토콜 (I 2 C, Microwire 및 SPI) 등을비롯한광범위한시리얼 EEPROM 옵션을제공하고있다. 이들제품은 40 C~125 C에이르는모든표준온도범위에서작동가능하다 보안데이터제품마이크로칩의 KEELOQ 코드호핑 (code hopping) 기술은단어길이가긴코드와함께암호화및동기화기법을사용해고도의보안성을실현해준다. 자세한내용은마이크로칩웹사이트를통해확인할수있다. 1.3 마이크로칩개발툴 마이크로칩의 비트제품을이용한개발시유용하게사용될수있는소프트웨어및하드웨어개발툴에대해살펴보자 비트소프트웨어개발툴 MPLAB C30 C 컴파일러 MPLAB C30 C Compiler 는모든기능을완벽하게갖춘 ANSI 규격최적화컴파일러로써문자열조작, 동적메모리할당, 데이터변환, 타임 키핑 (timekeeping) 및수학라이브러리 (math libraries) 등전체 ANSI C 표준라이브러리를포함하고있다. 22

23 1.3 마이크로칩개발툴 Assembler / Linker / Librarian MPLAB ASM30은모든기능을갖춘매크로어셈블러로써, 사용자정의매크로, 조건부어셈블리및다양한어셈블러지시어등의강력한코드생성툴이며, 무료로제공되고있다. MPLAB LINK30 및 MPLAB LIB30은효율적인연결, 라이브러리생성및유지관리를지원하는 Linker 및 Librarian 모듈이다. MPLAB ASM30은무료통합개발환경툴인 MPLAB IDE 설치시해당디렉토리에자동으로설치된다 MPLAB SIM Software Simulator MPLAB SIM 소프트웨어시뮬레이터는 CPU와명령어를완벽히시뮬레이션할수있을뿐만아니라 I/O, 인터럽트, UART, A/D 모듈등과같은주요주변장치의시뮬레이션또한지원해주는이상적인알고리즘개발툴이다 MPLAB VDI(Visual Device Initializer) MPLAB VDI를통해전체 DSC를도식적으로구성할수있으며, 구성이완성되면한번의마우스클릭으로어셈블리또는 C 프로그램에서사용가능한초기화코드를생성한다. MPLAB VDI는일련의작동조건뿐만아니라핀, 메모리및인터럽트의할당및충돌에대한광범위한오류검사를실행한다. 생성된코드파일은 MPLAB Project Manager 를통해나머지애플리케이션코드와쉽게통합할수있다. 또한리소스할당및구성에대한상세한보고서를통해프로젝트문서화를단순화한다. MPLAB VDI 의주요기능 : 드래그앤드롭기능선택 원클릭구성 포괄적인오류검사 초기화코드생성 MPLAB Project Manager 를통해손쉽게통합 출력보고서를통해프로젝트문서화요건완화 23

24 MicroChip bit MicroController 주변장치드라이버라이브러리 270개이상의 C 유틸리티기능으로구성된이라이브러리는하드웨어주변장치모듈을다양한모드로설정및작동할수있도록지원한다. 주변장치드라이버라이브러리에포함된기능은다음과같다. 10비트및 12비트 A/D 컨버터 UART, SPI, I²C 및코덱인터페이스 모터컨트롤 PWM 및 QEI 범용타이머 IC(Input Capture) 및 OC(Output Compare) 수학 (Math) 라이브러리이 IEEE 754 호환라이브러리는단일 / 이중정밀부동소수점 ANSI C 표준수학함수를제공한다. 이들루틴은코드크기를최소화할수있도록최적화되었다. 수학라이브러리는어셈블리나 C에서사용할수있으며주요함수는다음과같다. sin, cos, tan asin, acos, atan 24

25 1.3 마이크로칩개발툴 ln, log10, sqrt, power ceil, floor, mod, frexp DSP 알고리즘라이브러리포괄적인 DSP 빌딩블록라이브러리는실행속도에맞게어셈블리코드에서완벽하게최적화되었다. DSP 함수는어셈블리나 C에서사용할수있으며, DSP 알고리즘라이브러리에서지원되는주요알고리즘은다음과같다. 연속적 IIR 필터 FIR 필터및 LMS 필터 상관관계, 회귀선 FFT 및윈도우함수 행렬및벡터연산 비트하드웨어개발툴 MPLAB ICD2 (In Circuit Debugger / Programmer) MPLAB ICD 2 디버거및프로그래머로써강력한성능의저가형개발툴이다. MPLAB ICD 2는 MPLAB IDE에서작동하기때문에어셈블리또는 C 소스코드를디버그하고단일단계모드에서변수를확인및수정하며브레이크포인트를설정할수있다. 25

26 MicroChip bit MicroController 주요기능 : 고속동작 USB 또는시리얼포트를통해 PC 연결 플래시메모리프로그래머 지능형 watch 변수윈도우 고급브레이크포인트기능 MPLAB REAL ICE TM (In Circuit Emulation System) MPLAB REAL ICE In Circuit Emulator 는마이크로칩의차세대에뮬레이션및디버깅시스템이다. dspic33f, PIC24H, PIC24F 및 dspic30f 비트장비를초기지원하는이시스템은손쉽고신속한애플리케이션개발및디버깅을위해강력한회로내에뮬레이션플랫폼을제공한다. 타깃마이크로컨트롤러자체의특수하드웨어로직을통해에뮬레이션이수행되기때문에별도의에뮬레이션장비가필요하지않다. 주요기능 : 최대 6개의하드웨어브레이크포인트 최대 1,000개의소프트웨어브레이크포인트 사용자제어방식의프로그램메모리추적 / 데이터메모리로그 고속 USB 2.0 PC 인터페이스 기존의 ICSP(In-Circuit Serial Programming ) 인터페이스나 LVDS( 추가옵션 ) 실행 (Run), 정지 (Halt) 및단일단계 (Single-step) 모드 로직프로브 (logic probe) 스톱워치 26

27 1.3 마이크로칩개발툴 MPLAB PM3 (Device Programmer) MPLAB PM3 Device Programmer는양산환경을지원할수있을정도로완벽한기능을갖춘범용장비프로그래밍솔루션으로서, 상호호환되는소켓모듈을사용해프로그래밍이가능한마이크로칩의거의모든장비를지원한다. MPLAB PM3는많은장비에서프로그래밍시간을단축하고강력한 ICSP를위해내장인터페이스를제공한다 Explorer Development Board PIC24 마이크로컨트롤러및 dspic33f 디지털신호컨트롤러제품군의기능및성능을평가하는데사용되는저가개발보드로서, 주요설계요구를신속하게개발및검증할수있도록지원하는데모보드이다. 27

28 MicroChip bit MicroController 주요기능 : PIC24F, PIC24H 및 dspic33f General Purpose 및 Motor Control 제품지원 상호호환되는 2개의 PIM(Plug In Module) : PIC24F 및 dspic33f용 PICtail Plus 애플리케이션별도터 (daughter) 카드를위한모듈식설계 : - SD(Secure Digital)/MMC(Multimedia Card) - SPI 인터페이스 (AC4122) - Ethernet(AC4123) - 컴팩트플래시, IEEE WPAN, IrDA 프로토콜, 음성재생도터카드 dspicdem TM 80 pin Starter Development Board 이개발보드는 dspic33f 디바이스를비롯해 80핀 dspic30f General Purpose 및 Motor Control 제품군을평가할수있는개발보드이다. 주요기능 : 80핀 dspic30f6014a General Purpose PIM(MA300014) 포함 80핀 dspic30f6010 Motor Control PIM(MA300013) 및 80핀~100핀 dspic33f General Purpose PIM(MA330012) 지원 9V 전원공급 LED, 스위치, 전위차계, UART 인터페이스 음성대역신호입력을위한 A/D 입력필터회로 음성대역출력을위한온보드 DAC 및필터 28

29 1.3 마이크로칩개발툴 회로프로토타이핑영역 어셈블리언어데모프로그램및사용자가이드 3.3V로의 5개출력에대한선택형전압레귤레이터포함 dspicdem 1.1 General Purpose Development Board 이보드는음성및오디오관련애플리케이션에대한개발을지원한다. 주요기능 : dspic30f6014a PIM(MA300014) 포함 직렬통신채널 (2개의 UART, SPI, CAN) Si3000 코덱 (MIC IN/ 스피커 OUT 상태 ) 범용프로토타이핑영역및확장헤더 디지털전위차계, LED, 스위치등 모터컨트럴개발시스템 BLDC, ACIM, PMSM, SR 모터및 UPS 애플리케이션의신속한프로토타이핑및검증을지원하는시스템으로, dspicdem MC1 Motor Control Development Board와 2개의전원모듈옵션가운데하나로구성되어있습니다. dspicdem MC1H 3 Phase High Voltage Power Module(DM300021) 은 AC 전원애플리케이션을지원하는반면, dspicdem MC1L 3 Phase Low Voltage Power Module(DM300022) 은최대 48V까지 DC 전원애플리케이션을지원한다. 29

30 MicroChip bit MicroController 주요기능 : 전원부냉각을위한열발산판 (heat sink) 완전자동화된전원회로보호 전원회로에서의절연 모터피드백신호를위한다양한옵션 PICDEM TM MC LV Motor Control Development Board Sensored 및 senserless BLDC 모터컨트롤애플리케이션을효율적으로평가및개발할수있도록지원하는개발보드로서 28핀 dspic30f3010 가사용된다. 주요기능 : I²C 인터페이스에서과전류보호및온도센서지원 3-phase 전압소스인버터브리지 9개의 LED - 3개는상태표시용, 나머지 6개는 PWM 표시용 30

31 1.3 마이크로칩개발툴 모터전류및역기전력 (Back EMF) 감지를위한테스트지점 속도제어전위차계 48V 및 2.2A의최대모터정격지원 28핀 PIC18 MCU 지원 ( 특히 PIC18F2431) 즉각적인사용이가능한전원공급장치및모터제공 ( 옵션 ) dspicdem SMPS Buck Development Board 단순한 DC/DC SMPS(Switch Mode Power Supply) 를구현하는개발보드로서, 디지털루프제어설계가처음인초보설계자들을위한데모보드이다. 주요기능 : 이중의독립형강압용컨버터 (buck converter) 강압용컨버터는동기또는비동기모드에서작동가능 31

32 MicroChip bit MicroController 입력전압의범위는 7V~15V( 공칭전압 9V) 출력전압은 0V를시작으로입력전압 - 1.5V로설정가능 사용자는동적출력로드가과도응답을조사할수있도록지원 dspicdem.net TM Connectivity Development Board 소프트모뎀및접속기반애플리케이션에대한개발을지원하는개발보드이다. 주요기능 : dspicdem.net 1 (DM ) 은 FCC/JATE PSTN 국가를지원 dspicdem.net 2 (DM ) 은 CTR 21 PSTN 국가지원 dspic30f6014 PIM(MA300011) 포함 DAA/AFE 칩셋을연결하는 10Base-T Ethernet MAC 및 PHY 인터페이스와 PSTN 인터페이스 직렬통신채널 (UART 및 CAN) 상시저장을위한외장 EEPROM 및 RAM 메모리 범용프로토타이핑영역및확장헤더 LED, 스위치, 전위차계및 LCD 디스플레이 dspicdem 2 Development Board 18핀, 28핀및 40핀 DIP 패키지 dspic DSC 장비모두를위한솔루션을효율적으로설계할수있는설계보드이다. 32

33 1.3 마이크로칩개발툴 주요기능 : 모터컨트롤, 센서및범용제품군을포함해 18핀, 28핀및 40핀 DIP 패키지로 11개의 dspic DSC 장비를위한개발플랫폼제공 온보드 CAN 및 UART 지원 다양한오실레이터옵션을온보드지원 모든 11개장비에서애플리케이션개발을신속하게시작할수있도록소스코드예와사용자가이드가제공 dspicdem 28 pin Starter Development Board 모터컨트롤, 센서및전력변환제품군을포함해 28핀 dspic30f MCU에서효율적으로개발에착수할수있도록하는개발보드이다. 주요기능 : 28핀 dspic30f2010 MCU포함 9V 전원공급장치로부터의전원입력 UART 인터페이스 MCU의모든 I/O 핀에액세스하기위한헤더 회로프로토타이핑영역 어셈블리언어데모프로그램및설명서 모든 dspic30f 28핀 DIP 또는 SOIC 장비수용 33

34 MicroChip bit MicroController 34

35 CHAPTER 마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩마이크로칩 비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트비트마이크로칩 비트마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러마이크로컨트롤러구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조구조마이크로컨트롤러구조 2.1 마이크로칩 비트제품패밀리소개 2.2 마이크로칩 비트마이크로컨트롤러구조및주변장치개요 2.3 마이크로칩 비트마이크로컨트롤러용라이브러리소개 2.4 마이크로칩웹세미나소개

36 MicroChip bit MicroController 2.1 마이크로칩 비트제품패밀리소개 마이크로칩의 비트제품군에는 PIC24F, PIC24H, dspic30f, dspic33f 총 4가지제품군으로이루어졌다. 이들제품군의가장큰특징은동일한기본아키텍처를갖고있으며, 24 비트프로그램플래쉬메모리, 동일한 비트데이터메모리로구성되어있어, 각제품군간의코드마이그레이션이손쉽게이루어질수있다. 이들제품군의가장큰차이점은 PIC24F 및 PIC24H 제품군은 DSP 엔진을배제한범용의디바이스이며, dspic30f 및 dspic33f 제품군은 DSP 엔진을탑재하고있어고속 DSP 연산처리를지원한다는것이다 PIC24F 제품군 PIC24F 제품군은 DSP 엔진을탑재하지않은저가형 비트범용디바이스이다. 이제품군은 0.25 마이크론공정을통해 3.3V의낮은동작전압레벨을지원하며, 최대 MIPS의동작속도를지원하며마이크로칩의고성능 8비트제품군인 PIC18 제품군의주변장치및더욱향상된병렬마스터포트 (PMP, Parallel Master Port), 저전력리얼타임클럭캘린더및하드웨어 CRC(Cyclic Redundancy Check) 등의범용주변장치와완벽히호환이되며, 디버깅을위한 JTAG 인터페이스도추가로지원하고있다. 36

37 2.1 마이크로칩 비트제품패밀리소개 PIC24F 제품군의주요사양은다음과같다. 주요특징 연산처리성능 : 32MHz 프로그램메모리 - 셀프프로그래밍플래쉬 - 메모리용량 : 32~128KB 데이터메모리 (RAM) : 8KB 패키지 : 64~100핀 내부오실레이터내장 저전력모드지원 JTAG Boundary Scan & Flash Memory Programming 주변장치 UART(2 채널 ) : LIN 및 IrDA 인터페이스지원 I 2 C 통신인터페이스 : 2채널 37

38 MicroChip bit MicroController SPI 통신인터페이스 : 2채널 A/D 컨버터 : 채널, 10비트분해능, 500ksps 샘플링속도 IC( 입력캡쳐 ) : 5채널 OC( 출력캡쳐 ) / PWM : 5채널 타이머 : 비트타이머 x 5 비교기 : 2채널 하드웨어 RTCC( 리어타임클럭캘린더 ) PMP(Parallel Master Port) CRCGenerator PIC24F 제품군 PIC24H 제품군 PIC24H는 PIC24F 제품군보다빠른처리속도를지원하는제품군으로써 H는높은속도와성능을의미하는 Higher 의약자이다. 이제품군은 PIC24F 제품군보다큰프로그램및데이터메모리를갖고있으며, 40MPIS의고속처리속도를발휘할수있다. 가장큰주변장치특징으로써 CPU의개입없이듀얼-포트램을지원하는 8채널 DMA 기능을제공하고있다. 또한보다빠른 A/D 컨버터및향상된 CAN 모듈과같은새로운주변장치를지원하고있다. 38

39 2.1 마이크로칩 비트제품패밀리소개 주요특징 연산처리성능 : 40MIPS 프로그램메모리 - 셀프프로그래밍플래쉬 - 메모리용량 : 256KB, 128KB, 64KB 데이터메모리 (RAM) : 8~KB 패키지 : 100-, 80-, 64-pin 8채널 DMA 내부오실레이터내장 저전력모드지원 JTAG Boundary Scan & Flash Memory Programming 주변장치 UART(2 채널 ) : LIN 및 IrDA 인터페이스지원 I 2 C 통신인터페이스 : 1~2채널 39

40 MicroChip bit MicroController SPI 통신인터페이스 : 2채널 CAN 인터페이스 : 1~2채널 A/D 컨버터 - 6~32채널, 10비트분해능 (1.1Msps) 또는 12비트분해능 (2.2Msps) - 2채널 2.2Msps 샘플링속도 IC( 입력캡쳐 ) : 8채널 OC( 출력캡쳐 ) / PWM : 8채널 타이머 : 비트타이머 x 5 PIC24H 제품군 dspic30/33f 제품군 dspic30/33f 제품군은 PIC24H 제품군의모든기능을지원할뿐만아니라, 곱셈및어큐뮬레이트연산을단일사이클에수행할수있도록지원하는 DSP 엔진을탑재하고있다. 이제품군은 PIC24F/H 제품군과동일한 비트아키텍처및명령어를사용하고있다. dspic30f 제품군은 2.5~5.5V의동작전압과최대 30MIPS의연산처리속도를갖는반면, dspic33f 제품군은 3.0~3.6V의동작전압과최대 40MIPS 의연산처리속도를갖고있다. 40

41 2.1 마이크로칩 비트제품패밀리소개 dspic30f 제품군 주요특징 연산처리성능 : 30MIPS 프로그램메모리 - 셀프-프로그래밍플래쉬 - 메모리용량 : 12~144KB 데이터메모리 (RAM) : 0.5~8KB 패키지 : 18~80핀 내부오실레이터내장 저전력모드지원 주변장치 UART(1~2) : LIN 인터페이스 SPI : 1~2채널 I 2 C : 1채널 41

42 MicroChip bit MicroController CAN : 1~2채널 ( 일부디바이스 ) A/D 컨버터 - GP 제품군 : 13~채널, 12비트분해능 (200ksps) - MC 제품군 : 6~15채널, 10비트분해능 (1Msps) - Sensor 제품군 : 8~10채널, 12비트분해능 (200ksps) - SMPS 제품군 : 6~12채널, 10비트분해능 (2Msps) IC ( 입력캡쳐 ) : 8채널 OC( 출력캡쳐 ) / PWM : 8채널 타이머 : 비트타이머 x 5 CODEC Interface (GP 제품군 ) MC(Motor Control) 제품군특징 모터컨트롤 PWM Quadrature Encoder Interface SMPS 제품군특징 SMPS PWM : 1ns 분해능 SMPS용 A/D 컨버터 : 10비트분해능, 2Msps 샘플링속도 아날로그비교기 : 20ns dspic30f 제품군 ( 범용 ) dspic30f 제품군 ( 센서응용 ) 42

43 2.1 마이크로칩 비트제품패밀리소개 dspic30f 제품군 ( 모터컨트롤및전력변환응용 ) dspic30f 제품군 (SMPS 응용 ) dspic33f 제품군 주요특징 연산처리성능 : 40MIPS 프로그램메모리 - 셀프-프로그래밍플래쉬 - 12~256KB 플래쉬 데이터메모리 (RAM) : 1~30KB 패키지 : 18~100핀 8채널 DMA 내부오실레이터내장 저전력모드지원 JTAG Boundary Scan & Flash Memory Programming 주변장치 UART(1~2) : LIN 및 IrDA 인터페이스지원 I 2 C, SPI, CAN : 최대 2개 A/D 컨버터 43

44 MicroChip bit MicroController - 2채널 2.2Msps - 12비트분해능 : 단일채널샘플링 - 10비트분해능 : 4채널동시샘플링 IC( 입력캡쳐 ) : 최대 8채널 OC( 출력캡쳐 ) / PWM : 최대 8채널 타이머 : 비트타이머 x 9 CODEC Interface(GP 제품군 ) Motor Control Motor Control PWM Quadrature Encoder Interface (2) dspic33f 제품군 ( 범용 ) 44

45 dspic33f 제품군 ( 모터컨트롤및전력변환 ) 2.2 마이크로칩 비트마이크로컨트롤러구조및주변장치개요 2.2 마이크로칩 비트마이크로컨트롤러구조및주변장치개요 Havard Architecture 마이크로칩 비트 MCU는 24비트의프로그램메모리버스와 비트의데이터메모리버스가각각분리된하바드아키텍쳐구조를가지며또한, 프로그램메모리와데이터메모리간의데이터전송이가능하도록개선된구조를갖고있다. 45

46 MicroChip bit MicroController 명령어파이프라인마이크로칩 비트 MCU는 2레벨명령어파이프라인을갖기때문에명령어의페치및실행이동시에이루어진다. 따라서분기명령어를제외한대부분의명령어가 1사이클에수행된다. 다음그림은명령어파이프라인의실행과정을설명해주고있다. 첫번째명령어사이클에서첫명령어의 1워드가패치되고, 두번째명령어사이클에서실행이된다. 이때다음명령어가패치되게되는데 2번째명령어는분기명령어로써 2워드 2사이클명령어이며, 이명령어의 2번째워드의 OPCODE는 NOP이다. 따라서 3번째사이클에서 2번째워드가액세스되고전체명령어인 CALL SUB_1이실행된다. 4번째사이클에서임의의 NOP 명령어가실행되면서동시에호출된함수의첫번째명령어인 BSET PORTA, RA3가페치된다 프로그램메모리구조마이크로칩 비트 MCU는최대 12MB의프로그램메모리및 12MB의 Configuration 메모리영역을지원할수있는구조를갖고있다. 0번지에리셋벡터가위치하며, 0x000004~0x0000FF 및 0x000104~0x0001FF에는인터럽트벡터테이블 (IVT) 및얼터네이트인터럽트벡터테이블 (AIVT) 이차지하고있다. 일반적인응용프로그램이위치하게되는사용자프로그램영역은 0x000200~0x7FFFFF 영역을갖게된다. 다만, dspic30f 제품군은인터럽트벡터테이블 (IVT) 및얼터네이트인터럽트벡터테이블 (AIVT) 이 0x000004~0x0000FF 영역에위치하기때문에사용자프로그램영역은 0x000100번지부터시작한다. 46

47 2.2 마이크로칩 비트마이크로컨트롤러구조및주변장치개요 비트프로그래머모델구조마이크로칩 비트 MCU는 개의 비트워킹레지스터 (Working Register) 즉, W0~ W15를갖고있으며, 소프트웨어스택지원을위해 W15는스택포인터, W14는프레임포인터로사용된다. 23비트의 PC(Program Counter) 는프로그램메모리의액세스를위해사용되며워드 (2바이트 ) 크기의 PCL 및 PCH이있으며, PCH의상위바이트는사용되지않는다. 상태레지스터 (SR, Status Register) 는 ALU(Arithmetic Logic Unit) 및 DSP의상태등과함께 CPU의우선순위상태를갖고있다. RCOUNT 레지스터는명령어가반복되어야하는회수를나타내는반복카운터값을저장하고있는레지스터이며, CORCON 레지스터는 CPU에할당된우선순위의상태및 PSV (Program Space Visibility) 동작을결정하는역할을한다. TBLPAG 레지스터는테이블연산이수행될프로그램메모리의페이지를가리키며, PSVPAG 레지스터는데이터메모리처럼액세스될수있는프로그램메모리의페이지를가리킨다. 나머지레지스터는 dspic 제품군에서만지원되는 DSP 전용레지스터들이다. 47

48 MicroChip bit MicroController 데이터메모리구조데이터메모리는최대 64KB 크기를가지며, 최상위 2KB 영역은 MCU의주변장치를설정하고액세스하기위해사용되는 SFR(Special Function Register) 들이위치하고있다. 따라서이후영역부터사용자 RAM으로사용될수있다. 또한데이터메모리의최초 8KB 영역을 Near 데이터메모리라불리며, 이영역은명령어에따라서빠르고효율적으로데이터를액세스할수있는영역이다. PIC24F 및 PIC24H 제품군과같이 DSP 엔진이없는 MCU는단일액세스데이터메모리영역을갖고있지만, dspic30f 및 dspic33f와같이 DSP 엔진이탑재된디바이스는듀얼액세스를위해 X 데이터와 Y 데이터메모리영역으로구분되어진다. 데이터메모리의하위 32KB는 PSV(Program Space Visibility) 명령어를이용해프로그램메모리에맵핑될수있는영역으로일반데이터메모리로서는사용이되지않는영역이다. 이기능을통해사용자는 32KB 크기의프로그램메모리를데이터메모리처럼액세스할수있도록지원하는편리한기능을제공해준다. 참고로데이터메모리는 비트워드크기를갖으며두개의 8비트즉, 1 바이트크기의데이터로구분하여그림의오른쪽 LSB(Least Significant Byte) 는짝수번지, 왼쪽 MSB 48

49 2.3 마이크로칩 비트마이크로컨트롤러용라이브러리소개 (Most Significant Byte) 는홀수번지를바이트액세스명령어를통해각각액세스할수있다. 만약사용자가워드 (2바이트) 액세스를통해홀수번지를액세스하게되면, 어드레스에러트랩이발생하게되므로모든워드액세스를위해서는어드레스가짝수가되도록액세스할데이터를정렬하여야한다. 2.3 마이크로칩 비트마이크로컨트롤러용라이브러리소개 음성어플리케이션을위한라이브러리 음성인코딩 / 디코딩라이브러리다양한음성인코딩 / 압축및디코딩 / 해제애플리케이션을위해다음 3가지옵션이제공되고있다. G.711 : 무료제공되는라이브러리로서 ITU T G.711 표준을토대로하며 2:1 압축을위해 A-law 또는 u(mu)-law 압신 (companding) 을사용 G.726A : ITU-T G.726 Annex A 표준을토대로하며 ADPCM(Adaptive Differential 49

50 MicroChip bit MicroController Pulse Code Modulation) 인코딩알고리즘을사용한다. 선택한출력비트속도에따라최고 8:1의압축율달성가능 SPEEX : dspic DSC에맞게적응된 Linux 워크스테이션커뮤니티에서널리사용되는표준으로서, 셀룰러애플리케이션을위해새롭게개발된 CELP(Code Excited Linear Prediction) 인코딩기술을사용하고있다. :1의압축율달성가능 소음억제라이브러리음성을캡처하는동안마이크에잡히는주변소음등과같이음성신호에대한소음간섭을없애주는애플리케이션라이브러리이다. 이알고리즘은특히핸즈프리폰, 스피커폰, 인터컴시스템, 헤드셋같이소음간섭이격리되지않는시스템에유용하며, 0~4kHz의오디오대역을처리하며 10~20dB의소음감소를보장한다. 또한, 이라이브러리에는 9.6kHz, kHz 및 12kHz의입력 / 출력샘플링속도를지원하기위한일부샘플속도변환기능도포함되어있다 음향반향제거라이브러리스피커폰이나인터컴시스템에서스피커와마이크로폰간의음향경로에서발생하는에코를제거할수있도록지원하는라이브러리로써, G.7 표준과완벽하게호환되고, 32 또는 64ms의에코지연을보장하고 0~4kHz의오디오대역처리는물론, 40~50dB의에코 50

51 2.3 마이크로칩 비트마이크로컨트롤러용라이브러리소개 제거를실행한다. 또한, 이라이브러리에는 9.6kHz, kHz 및 12kHz의입력 / 출력샘플링속도를지원하기위한일부샘플속도변환기능도포함되어있다 라인에코제거라이브러리전화선에혼재하고있는 2~4 와이어변환으로발생하는전기회선의에코을제거하는라이브러리로써장거리음성통신애플리케이션, 특히위성네트워크및대륙간장거리네트워크를비롯한디지털네트워크 ( 예 : VoIP) 를통한연결에서유용하게사용될수있다. 이라이브러리는 ITU-T G.8 권고를완벽하게준수하며전이중 (full-duplex) 방식으로사용할수있으며, 0~4kHz 의오디오대역 (비트음성데이터에대한 8kHz 샘플링 ) 을처리한다 음성인식 dspic DSC를위한자동음성인식 (Automatic Speech Recognition) 은핸드셋, 가전기기제어와같은다양한음성구동애플리케이션을지원하며, 이패키지는음성단어라이브러리빌더 (Speech Word Library Builder) 와음성인식소프트웨어라이브러리 (Speech Recognition Software Library) 로이루어져있다. 51

52 MicroChip bit MicroController 통신 (Connectivity) 라이브러리 TCP/IP 프로토콜스택마이크로칩의 TCP/IP Stack 은표준 TCP/IP 기반애플리케이션 (HTTP 서버, FTP 서버등 ) 을위한서비스를제공하는무료소프트웨어이며맞춤형 TCP/IP 기반애플리케이션으로사용될수있다. 이스택은모든 PIC18, PIC24, dspic30f 및 dspic33f 제품에이식할수있으며 MPLAB C18, HI-TECH PIC-18 및 MPLAB C30 C 컴파일러를지원한다. 마이크로칩무료 TCP/IP Stack TCP 및 UDP에대한소켓지원 RTOS 비종속 최대 TCP 상태머신 ENC28J60 이더넷컨트롤러지원 제공되는모듈 : MAC, SLIP, ARP, IP, ICMP, TCP, SNMP, UDP, DHCP, FTP 및 HTTP CMX사의 MicroNET TM TCP/IP 스택 CMX사의 MicroNet TCP/IP Stack 은 dspic DSC상의 Flash 및 RAM 리소스사용을최적화하기위해설계되었으며, 이소프트웨어는게이트웨이나 PC를사용하지않고직접프로세서를실행한다. 이스택은독립형모드로실행되거나 RTOS와연동해실행될수있으며, 업계표준프로토콜만을사용하는 CMX-MicroNet 은직접연결, 모뎀접속또는이더넷및무선이더넷 (802.11b) 연결을통해 TCP/IP 네트워킹을제공한다. 이라이브러리는 dspicdem.net Connectivity Board 에서구현될수있다. 이스택을이용하면무료마이크로칩스택에서는현재지원되지않는 P2P(Point-to-Point) 프로토콜 E-메일지원및모뎀제어를지원한다. MicroNet TCP/IP Stack by CMX RFC 호환프로토콜스택 CMX RTOS 지원 이더넷 NIC 드라이버 소형 Flash/RAM 면적 소스코드제공 52

53 2.3 마이크로칩 비트마이크로컨트롤러용라이브러리소개 소프트모뎀라이브러리 V.22bis/V.22 소프트모뎀라이브러리이라이브러리는마이크로칩웹사이트에서무료로제공되고있으며, V.22bis Soft Modem Library는 ITU-T 준수 V.21/Bell 103, V.22 및 V.22bis 모뎀과 V.42 권장사항에대한알고리즘컬렉션이며, V.22bis 라이브러리는전체소스코드는물론, 사용자애플리케이션과연결하는데필요한객체코드모듈이포함되어제공된다. 송수신데이터펌프코드모듈은어셈블리언어로코딩되어최적의속도와최소형코드사이즈를보장하며, AT, V.42 및 Data Pump API는 C로코딩되어있으며, UART 및 Analog Front End(AFE) I/O 를위한 Data Converter Interface(DCI) 와같은하드웨어컴포넌트드라이버가제공된다. 이라이브러리는 dspicdem.net Connectivity Board 에서구현할수있다. 마이크로칩의 V.32bis/V.22bis 최적의크기와속도를위해어셈블리에코딩된데이터펌프 (Data Pump) V.32bis(4800~14,400bps) V.22bis(1200~2400bps) V.42(LAPM, 오류수정절차 ) V.32bis 소프트모뎀라이브러리 V.32bis Soft Modem Library는 ITU-T 준수 V.21/Bell 103, V.22, V.22bis, V.32 및 V.32bis 모뎀과 V.42 권장사항에대한알고리즘이며, 사용자애플리케이션과연결하는데필요한객체코드모듈이포함되어제공되고있다. 송수신데이터펌프코드모듈은어셈블리언어로코딩되어최적의속도와최소형코드사이즈를보장하며, AT, V.42 및 Data Pump API는 C로코딩되어있고, UART 및 AFE I/O를위한 DCI 같은하드웨어컴포넌트드라이버가제공된다. 이라이브러리는 dspicdem.net Connectivity Development Board 에서구현할수있다 VOCAL Technologies 의 V.32/V.22/V.22bis 소프트모뎀라이브러리이 Soft Modem Library는데이터모듈레이션및프로토콜 (V.32, V.22, V.22bis, V.23, V.21, Bell 103, Bell 212A 및 Bell 202) 의컬렉션이며, 사용자애플리케이션과연결하는데필요한객체코드모듈이포함되어제공된다. 데이터모듈레이션은속도와코드크기에대한인라인어셈블리언어최적화기능을통해 C로코딩되어있으며, UART 및 AFE I/O를위한 DCI 같은하드웨어컴포넌트드라이브가제공된다. 이라이브러리는 dspicdem.net Connectivity Board에구현할수있다. 53

54 MicroChip bit MicroController VOCAL의입증된 dspic30f용솔루션 V.32(9600 및 4800bps, non-trellis encoding) V.22/V.22bis(2400, 1200 및 600bps) V.42(LAPM, 오류수정절차 ) 기타어플리케이션라이브러리 암호화라이브러리 (Encryption Libraries) 대칭및비대칭키임베디드 Encryption Libraries를사용하여신뢰할수있고안전한애플리케이션을구현가능하다. NTRU Cryptosystems Inc. 에의해마이크로칩을위해개발된이들라이브러리는최적화되고검증된것이며, 라이브러리함수는 C 또는어셈블리코드에의해쉽게호출될수있다. 또는마이크로칩이개발한 128비트키 AES 및 Triple DES Libraries가 microchipdirect( 에서온라인으로 5달러의프로덕션라이센스요금으로판매되고있다. 대칭키임베디드 Encryption Library 기능 : ECB, CTR, CBC, CBC MAC 및 CCM 모드의 128비트 AES ECB, CTR, CBC 및 CBC MAC 모드의 Triple DES SHA-1, MD5, 난수발생기 (DRBG X9.82) 비대칭키임베디드 Encryption Library 기능 : 암호화 / 암호해제및신호처리 / 유효성검증을위한 RSA(1024비트및 2048비트모듈 ) 신호처리 / 유효성검증을위한 DSA(1024비트모듈 ) Diffie-Hellman Key Agreement(1024비트및 2048비트모듈 ) - 전용 / 공용키생성 - 공유키생성 SHA-1, MD5, 난수발생기 (DRBG X9.82) FAT 파일시스템임베디드시스템에탈착형 Flash 기반미디어카드를사용하는것이점차보편화되고있으며, FAT 파일시스템라이브러리를통해탈착형 Flash 기반미디어카드 ( 최고 2기가비트 ) 응용개발을용이하게수행할수있다. 54

55 FAT File System Library 기능 : 마이크로칩컨트롤러용으로무료제공 모든 PIC18, PIC24 및 dspic DSC 제품에이식가능 MPLAB C18 및 MPLAB C30 C 컴파일러지원 SD/MMC CompactFlash 메모리카드지원 최고 2GB 지원 2.3 마이크로칩 비트마이크로컨트롤러용라이브러리소개 모터컨트롤어플리케이션소프트웨어 Motor Control 제품군은 ACIM(AC Induction Motor), BLDC(Brushless DC) 및 SR (Switched Reluctance) 모터어플리케이션에적합하게제공되고있다. dspic30f Motor Control Development System 에서실행되는 2가지고급어플리케이션이제공되고있으며, 모든애플리케이션노트에대해서는마이크로칩웹사이트에서전체설명서와소스코드가무료로제공되고있다. 마이크로칩의모터컨트롤솔루션에대한자세한내용을확인하려면 의 Motor Control Design Center 사이트를이용하면유익한정보를얻을수있다 ACIM( 유도전동기 ) 의벡터컨트롤어플리케이션노트 AN908은 3상유도전동기를위한완벽하게검증된벡터제어알고리즘에대해설명하고있으며, 모터의전류, 토크 (torque) 및속도 (velocity) 는제어루프에서조정될수있다. 마이크로칩웹사이트에서전체설명과함께소스코드가무료로제공되고있다 ACIM( 유도전동기 ) 제어소개어플리케이션노트 AN984를통해유도전동기벡터제어에대한기초적인접근법을설명하고있다. 또한단상및삼상유도전동기의기본적인가변속제어에대한예제코드가포함되어있다 홀 센서형 BLDC 모터제어어플리케이션노트 AN957에서는 3개의홀효과 (hall effect) 센서와함께완벽하게테스트된 3상 BLDC 모터컨트롤알고리즘을설명하고있으며, 제공되는소스코드는 PI 속도제어루프를포함하고있다. 55

56 MicroChip bit MicroController 사인파를이용한 PMSM 모터제어어플리케이션노트 AN1017을통해회전자위치를예측할수있도록분로권선 (shunt winding) 을사용해 PMSM(Permanent Magnet Synchronous Motor) 을제어하며, dspic30f2010을사용하여구현한솔루션을소개하고있다 dspic30f6010 을이용한센서리스 BLDC 모터제어어플리케이션노트 AN901은 3상 BLDC 모터에대해테스트된센서리스제어알고리즘을설명하고있다. 모터의전류, 속도및버스전압은제어루프에서조정되며, LCD 메뉴인터페이스를통해모든센서리스모터제어의파라미터를조정하고있다. 이솔루션은 dspic30f6010 디바이스와 dspicdem MC1 개발보드를이용하고있다 dspic30f2010 을이용한센서리스 BLDC 모터제어어플리케이션노트 AN992를통해 dspic30f2010 디바이스를이용한센서리스 BLDC 모터제어의솔루션을제공하고있으며, 이솔루션은어플리케이션노트 AN901(dsPIC30F를이용한센서리스 BLDC 제어 ) 및 AN957(I/O 최소화를위한솔루션 ) 를기초로하고있다. 이솔루션은 dspic2010 디바이스및 PICDEM TM MC LV 개발보드를사용하고있다. 56

57 2.4 마이크로칩웹세미나소개 2.4 마이크로칩웹세미나소개 마이크로칩은지역별트레이닝센터및웹세미나를통해다양한기술세미나를제공하고있다. 특히 사이트를방문하면다양한기술세미나를무료로이용할수있다. 57

58 MicroChip bit MicroController 58

59 CHAPTER 마이크로칩개발툴 3.1 MPLAB IDE 3.2 MPLAB ICD2 디버거 3.3 MPLAB C30 컴파일러 3.4 Explorer 개발보드 3.5 기타

60 MicroChip bit MicroController 3.1 MPLAB IDE MPLAB IDE 소개 MPLAB IDE(Integrated Development Environment, 마이크로칩통합개발환경 ) 는 MPASM, MPLAB C18/30등의 Language Tool과 MPLAB ICD2, Real ICE, Pickit2, ICE2000 및 ICE4000, PM3 등의디버깅및프로그래밍툴등을하나의통합환경인 MPLAB IDE라는소프트웨어안에서이루어질수있도록지원해주는통합개발환경소프트웨어이다. 이소프트웨어는개발자 PC에서코드의편집, 컴파일, 링크및다양한하드웨어개발툴과인터페이스해주는개발 Workstation 이다. 즉, 마이크로칩 MPLAB IDE를이용하여 PIC MCU 및 dspic Digital Signal Controller 개발이가능하며마이크로칩웹사이트를통해무료로제공되고있다. 따라서 MPLAB IDE에익숙해지게되면마이크로칩의 8비트및 비트모든디바이스를개발함에있어서디바이스의변환이쉽고, 자유로워지게된다. MPLAB IDE에는툴바와다양한윈도우즈를가지고있는윈도우어플리케이션프로그램으로써현재 Version 7.52가제공되고있으며향후보다나은서비스를위해지속적인업데이트가이루어지고있다. 60

61 3.1 MPLAB IDE 프로젝트관리를위한툴인프로젝트매니저는개발자가작업중인프로젝트와연관된다양한파일들즉, 소스파일및헤더파일, 링크파일등을한눈에볼수있도록지원함으로써프로젝트관리가용이하도록지원해주는유익한툴이다. Embedded System 개발자들에게있어가장많이사용하게되는텍스트에디터는일반적으로코드를편집하는툴로써 C언어및 Assembly 코드에따라다양한색상을지원해줌으로써코딩을효과적으로할수있도록지원해주고있다. 각레지스터및데이터메모리, 프로그램메모리, Disassembly 의내용확인을위한윈도우, 그리고메모리사용현황을한눈에알아볼수있도록지원하는메모리게이지기능등은개발업무에많은편의와도움을제공해주고있다 다운로드방법 MPLAB IDE는마이크로칩공식홈페이지 ( 를통해무료로다운로드할수있으며, 새로운디바이스출시에따른지원및개선등을위해지속적인업데이트가이루어지고있으므로최신버전으로업데이트하는습관을갖기를추천한다. Down Load 위치 : Design MPLAB IDE 61

62 MicroChip bit MicroController 설치 그럼이제 MPLAB IDE 설치에대해알아보도록하자. 먼저마이크로칩공식홈페이지를통해 MPLAB IDE를다운로드받은후압축을해제하여생성된파일중인스톨파일 (setup.exe) 을실행한다. 설치과정중 MPLAB ICD2 등을위한설치옵션을물어보는창이뜨게되는데이때가능한모든옵션을선택할것을권장한다. <STEP1> 인스톨파일실행 (setup.exe) <STEP 2> 인스톨마법사실행과정 <STEP 3> 라이센스동의 (Agree 선택후 Next 버튼클릭 ) 62

63 3.1 MPLAB IDE <STEP 4> 옵션선택 (Complete 선택후 Next 버튼클릭 ) <STEP 5> 폴더위치선택 ( 권장하는기본폴더에설치 ) 주의 : Microchip 관련어플리케이션의기본폴더인 C:\Program Files\ Microchip 에설치할것을적극권장한다. <STEP 7> 라이센스동의 (Agree 선택후 Next 버튼클릭 ) 63

64 MicroChip bit MicroController <STEP 8> 파일복사실행 (Next 버튼클릭 ) <STEP 9> 설치과정 ( 실행중인응용프로그램이있으면, 아래와같이종료하라는경고를보여준다. 이때응용프로그램을종료할것을권장한다.) 64

65 3.2 MPLAB ICD2 디버거 이제 MPLAB IDE의설치과정이끝났다. 끝으로 MPLAB IDE 실행에앞서컴퓨터를재시작하면 MPLAB IDE를정상적으로사용할수있게된다. MPLAB IDE 사용법은 MPLAB C30 컴파일러를다루는장에서함께설명하도록하겠다. 3.2 MPLAB ICD2 디버거 MPLAB ICD2 소개 MPLAB ICD2 는 PIC MCU 및 dspic DSC를위한저가형실시간디버거및프로그래머이다. MPLAB ICD2를이용하여프로그램을다운로드및실시간실행이가능하며, MPLAB 의디버그기능을이용하여변수등의상세한확인이가능해진다. C 또는어셈블리소스코드의심볼릭레이블로부터변수값확인및브레이크포인트설정이가능하며 C 소스라인이나어셈블리코드라인을통해싱글스텝실행이가능해진다. 뿐만아니라 MPLAB ICD2는 MCU의프로그래머로서도사용이가능하다. ICD2는디바이스의 ICSP(In Circuit Serial Programming) 을제어하는 2개의하드웨어라인을이용하며, 온칩펌웨어를통해디버깅한다. ICD2의디버그기능은마이크로컨트롤러에내장되어있으며, 디버그코드를타켓프로세서에프로그래밍함으로써실행된다. 따라서디버그모드에서는프로그램메모리의일부영역과일부범용파일레지스터및스택레벨을점유하게된다. 65

66 MicroChip bit MicroController MPLAB ICD2 설치 MPLAB ICD2 설치방법에대해알아보자. MPLAB ICD2 이용을위해서는 PC에 USB 드라이버를설치하여야하는데이는앞서 MPLAB IDE 설치시해당 PC에이미설치되었을것이다. 그럼, 이제 MPLAB ICD2를설치해보자. <STEP 1> MPLAB IDE 설치먼저 MPLAB IDE를설치하기전에 ICD2를 USB 케이블또는 Serial Cable을통해 PC 와연결해서는안된다. 즉, MPLAB IDE 설치시 ICD2를위한드라이버를 PC에설치하므로, 이과정을먼저수행한후 ICD2를 PC와연결하면자동으로해당드라이버를검색하여설치할수있게된다. <STEP 2> ICD2 와 PC 연결 USB 케이블또는 RS 232 케이블을통해 ICD2와 PC를연결한다. 가능하면, 통신속도향상을위해 USB 연결을사용할것을권장한다. 66

67 3.2 MPLAB ICD2 디버거 USB 연결시드라이버의위치를물어보게되는데자동설치옵션을선택하거나수동으로드라이버위치를설정할수있다. 해당드라이버의위치는 MPLAB IDE가설치된폴더를참조하여아래와같이지정하면된다. ICD2 용 USB 드라이버위치 : C:\Program Files\Microchip\MPLAB IDE\ICD2\Drivers 67

68 MicroChip bit MicroController [ 장치관리자에서확인가능 ] <STEP 3> 전원및타깃보드연결다음그림과같이전원연결을 ICD2 모듈또는타깃보드에연결하여준다. 이전원은타깃보드의디바이스에공급될전원을의미하므로가능하면타깃보드에전원을직접공급해주는방식을사용할것을권장한다. 68

69 3.2 MPLAB ICD2 디버거 <STEP 4> 이제 MPLAB IDE를실행하고 Debugger 또는 Programmer 메뉴에서 MPLAB ICD2를선택하면사용할준비가끝났다. 참고사항 MPLAB ICD2 와타깃보드의연결은기본적으로 5핀커넥션을이용하며, 기본적으로사용되는잭은 RJ-12 6핀잭이사용되며이와관련된사항은다음그림을참조하거나, ICD2 사용자설명서를참조하면보다자세항사항을확인할수있다. 69

70 MicroChip bit MicroController 70

71 3.2 MPLAB ICD2 디버거 <MPLAB ICD2 Schematic> MPLAB ICD2 사용법 이제 MPLAB IDE 프로그램을실행해보자. <STEP 1> 디버거설정 Debugger Select Tool MPLAB ICD2 선택 프로그래머설정 Programmer Select Programmer MPLAB ICD2 선택 71

72 MicroChip bit MicroController <STEP 2> Output Windows 확인 - 정상설정시 - 비정상설정시 ( 예 ) 타깃보드에전원미공급시 72

73 3.2 MPLAB ICD2 디버거 디버거설정 MPLAB ICD2 디버거의설정에대해알아보자. 먼저 MPLAB IDE 메뉴바에서다음과같이 Debugger Setting 을선택하면디버거설정윈도우가나타난다. 이윈도우의각설정 Tab 메뉴를누르고해당옵션을선택할수있다. <Status> 현재 ICD2의연결옵션및연결상태를확인할수있다. ICD2와타깃보드가정상적으로연결되었을때 Run Selft Test 버튼을누르면모두 Pass 라는결과를얻을수있다. 73

74 MicroChip bit MicroController <Communication> PC와 ICD2의연결을 USB 및시리얼통신중선택할수있는옵션을제공해준다. 빠른통신속도를위해서 USB 통신으로선택할것을권장한다. <Power> 타깃보드에공급되는전원을모니터링할수있는옵션이며, 디바이스전압인 와프로그래밍전압인 를확인할수있다. 74

75 3.2 MPLAB ICD2 디버거 <Versions> MPLAB ICD2의 Firmware 버전및타깃디바이스의버전을확인할수있다. <Program> MPLAB ICD2를이용해타깃디바이스를프로그래밍옵션을선택할수있으며, 일반적으로그림과같이자동옵션을선택하여사용하면특별한문제가없다. 75

76 MicroChip bit MicroController <Warnings> 특정경고메시지를활성또는비활성화할수있는옵션을제공해준다 디버거사용법 MPLAB ICD2의디버거사용법에대한자세한사항은 MPLAB ICD2 사용자설명서를참조하기바란다. (DS51331B MPLAB ICD2 In-Circuit Debugger User s guide) 3.3 MPLAB C30 컴파일러 MPLAB C30 컴파일러소개 MPLAB C30 컴파일러는마이크로칩의 비트 MCU인 PIC24, dspic30f 및 dspic33f 임베디드소프트웨어개발을위한 ANSI 호환 C 컴파일러로써 MPLAB IDE와완벽하게호환이됨으로써, MPLAB ICE(In-Circuit Emulator), MPLAB ICD2(In-Circuit Debugger) 및 MPLAB SIM(Simulator) 와함께소스레벨디버깅을지원해준다. C30 컴파일러는 C 소스파일을컴파일하여어셈블리언어파일을생성한다. 이렇게생성된파일은다른오브젝트파일및라이브러리와함께링크되어실행가능한 COFF 또는 ELF 파일포맷으로최종어플리케이션프로그램을생성한다. COFF 또는 ELF 파일은 MPLAB IDE에로링되어테스트또는디버그될수있으며, 시뮬레이터나디바이스프로그래머에로딩가능한 Intel Hex 포맷으로변환될수있다. 76

77 3.3 MPLAB C30 컴파일러 MPLAB C30 컴파일러다운로드방법 MPLAB C30 컴파일러를설치해보자. 마이크로칩공식홈페이지 ( 을통해제공되고있는 MPLAB C30 컴파일러 Student Edition은 60일간모든기능을무료로이용할수있으며, 이후사용시는최적화레벨 1에한해무제한사용할수있다. 즉, 코드사이즈가다소증가하게되는것을감수하여야하므로, 필요시정품을구입하여사용할것을권장한다. 또한신규디바이스출시및성능향상등을목적으로지속적으로업그레이드되고있으므로최신버전으로유지하는습관을갖도록하자. 참고로, C30 컴파일러의다운로드를위해서는로그인을필수로요구하고있다. 77

78 MicroChip bit MicroController 다운로드위치 : Design Development Tools Software MPLAB C30 dspic30/33 and PIC MPLAB C30 컴파일러설치 앞에서설명한다운로드파일을실행하여다음절차에따라 C30 컴파일러를설치해보자. <STEP 1> 파일실행 <STEP 2> 라이센스동의 <STEP 3> 해당폴더설정 ( 기본폴더사용권장 ) 폴더위치 ; C:\Program Files\Microchip\MPLAB C30 78

79 3.3 MPLAB C30 컴파일러 <STEP 4> 사용자지정 ( 사용 PC의상황에따라설정 ) <STEP 5> 파일복사 <STEP 6> 환경설정 자동경로설정을위해 Yes 를클릭한다. 79

80 MicroChip bit MicroController <STEP 7> 설치완료 이제 MPLAB C30 컴파일러를사용할준비가완료되었다. 참고로 MPLAB C30 컴파일러는 MPLAB IDE에서사용이지원되므로, 특별한컴파일러명령어를익힐필요는없다 MPLAB C30 컴파일러기초 C30 컴파일러변수기초 C30 컴파일러식별자다음예제에서와같이 C프로그램의구성요소들의이름을식별자라하며, 여기에서는변수 a, c, 상수 b, 함수명 main이식별자에해당한다. 이러한모든식별자의이름을지정하기위해서는특별한규칙을갖고있다. 첫글자는반드시밑줄 (_) 및알파벳대문자 (A~Z) 또는알파벳소문자 (a~z) 만가능하며, 숫자는위치할수없지만이후나머지글자는숫자 (0~9) 도가능하다. 80

81 3.3 MPLAB C30 컴파일러 C30 컴파일러키워드 MPLAB C30 컴파일러는 GCC 컴파일러를기반으로하고있으며, 다음그림과같이 32 개의 ANSI C 키워드뿐만아니라 12개의추가적인키워드를갖고있다. 이들키워드는다음에소개하도록하겠다 C30컴파일러코멘트사용법코멘트는컴파일러에의해코드가아닌일반텍스트로인식되는부분을말한다. 흔히훌륭한프로그램밍은코드가의도하고자하는바를코멘트를이용해잘설명한것을말하기도한다. 따라서코드작성시다소귀찮더라도코멘트를잘이용하는습관을갖도록하자. 코멘트사용에는단 1줄을코멘트로처리하도록하는싱글라인코멘트와특정부분을코멘트로처리할수있는블록코멘트로분류할수있다. 싱글라인코멘트사용법 : // This is a single line comment 블록코멘트사용법 : /* This is a block comment */ 81

82 MicroChip bit MicroController C30컴파일러변수 C 프로그램에서의변수선언및사용예를보여주고있다. 변수선언은메모리의저장위치를할당하는것이라말할수있다. 즉, 아래예는데이터메모리에워드 (2바이트) 메모리 2개를할당하고, 그이름을각각 a, b라부르기로하자는일종의명령이라고볼수있다. 또다른예를살펴보자. 정수형 (2바이트) 변수, 캐릭터형 (1바이트) 변수, 실수형 (4바이트) 변수를각각하나씩선언하고그이름을 warp_factor, first_letter, length 라정했을때컴파일러에의해실제데이터메모리에는다음그림과같이각변수들에대한메모리를할당한다. 다시말해서, 변수는메모리에저장되는위치를가리키는이름이며, 고유의식별자 ( 이름 ) 로선언되어야하며, 또한데이터형을통해사이즈를할당받게된다. 82

83 3.3 MPLAB C30 컴파일러 C30 컴파일러데이터형 C 프로그래밍언어에는다음과같이 4개의기본데이터형을갖고있으며, char 및 int 데이터형을정수형데이터라부르며, float 및 double을실수형데이터라부르기도한다. 각각의데이터형이의미하는데이터사이즈가다르므로임베디드프로그래밍에서는사용하는컴파일러의데이터형을반드시숙지하고있어야한다. 참고로, CCS C 컴파일러를사용했던경험이있는독자라면다소생소한것을발견했을것이다. CCS C 컴파일러에서는 int가 8비트즉, 1바이트의데이터사이즈를갖기때문에여타의 C 컴파일러와는차이가있었다. 이는 CCS C 컴파일러가주로 8비트 PIC 마이크로컨트롤러를위한기본데이터형으로 int를사용했기때문으로생각된다. 하지만, ANSI C 뿐만아니라, MPLAB C30, C18 컴파일러및 Hi Tech PICC 컴파일러는 int 데이터형은 비트즉, 2바이트의데이터사이즈를갖고있으므로기존의 CCS C 컴파일러사용자는이점에주의하길당부한다. C30 컴파일러에서사용하는데이터형의한정어 (Qualifier) 에는 unsigned, signed, short, long이있으며, 이들은특정데이터형의범위및양수또는음수여부등을한정하기위해사용된다. 따라서변수선언시해당변수가갖는데이터사이즈및범위에따라서아래수 83

84 MicroChip bit MicroController 식어를이용할수있다. 다음그림의한정어가붙은데이터형에서회색의이탤릭체로표기된 int는생략하여사용할수있다. 즉 long과 long int는 32비트의동일한데이터형을갖게된다. 참고로, MPLAB C30 컴파일러는 IEEE 754 실수형포맷 (Floating Point Format) 을사용한다. 또한, 컴파일러옵션 fno short double 를사용할경우 double과 long double은동일하게 32비트데이터형을갖게된다. 변수선언에따라데이터가메모리에할당되는예를살펴보자. 일반적으로컴파일러에정렬 (Aligne) 옵션을주지않으면, 첫번째의예와같이선언된순서대로메모리가할당되며이로인해메모리에갭 (Gap) 이발생할수있다. 이경우, 두번째의예와같이같은데이터형의변수를함께선언해주면, 위에서발생했던메모리갭을최소화할수있다. 84

85 3.3 MPLAB C30 컴파일러 C30 컴파일러변수및데이터형실습 MPLAB IDE 를이용하여실습을해보도록하자. 절차 1. MPLAB IDE 실행 2. 디바이스선택 1 Menu Configure Select Device 클릭 2 Select Device 윈도우 : Device PIC24FJ128GA010 선택 3 OK 버튼클릭 3. 프로젝트생성 1 - Menu Project New 클릭 2 - Project Name : Demo1 입력 3 - Project Directory : C:\Temp\Demo1 입력 4 - OK 버튼클릭 85

86 MicroChip bit MicroController 4. C30 컴파일러선택 1 Menu Project Select Language Toolsuit : MPLAB C30 선택 86

87 3.3 MPLAB C30 컴파일러 5. 디바이스링커스크립트파일추가 1 프로젝트매니저윈도우의 Linker Scripts 폴더에서마우스우측버튼클릭 Add Files... 항목선택 2 p24fj128ga010.gld 파일클릭후열기 (Open) 버튼클릭 3 링커스크립트파일위치 : C:\Program Files\Microchip\MPLAB C30\Support\gld 87

88 MicroChip bit MicroController 6. C 소스코드생성하기 1 Menu File New 클릭 2 Menu File Save As 클릭 3 파일이름 : Demo1.c 입력후저장버튼클릭 88

89 3.3 MPLAB C30 컴파일러 7. 프로젝트에 C 소스코드추가 1 프로젝트매니저윈도우의 Source Files 폴더에서마우스우측버튼클릭 Add Files 선택 2 C:\Temp\Demo1\Demo1.c 선택후열기 (Open) 버튼클릭 89

90 MicroChip bit MicroController 8. C 소스코드입력 이제에디터윈도우의 Demo1.c 파일에다음과같이 C 소스코드를입력하자. //#include <p24fj128ga010.h> #include <stdio.h> #define CONSTANT1 0x50 // decimal 80 char charvariable; short shortvariable; int intvariable; long longvariable; float floatvariable; double doublevariable; // short int // long int int main(void) { charvariable = CONSTANT1; shortvariable = CONSTANT1; intvariable = CONSTANT1; 90

91 3.3 MPLAB C30 컴파일러 longvariable = CONSTANT1; floatvariable = CONSTANT1; doublevariable = CONSTANT1; printf("a char variable requires %d byte.\n", sizeof(char)); printf("a short variable requires %d bytes.\n", sizeof(short)); printf("an int variable requires %d bytes.\n", sizeof(int)); printf("a long variable requires %d bytes.\n", sizeof(long)); printf("a float variable requires %d bytes.\n", sizeof(float)); printf("a double variable requires %d bytes.\n", sizeof(double)); } while(1); 91

92 MicroChip bit MicroController 9. Build Option 설정 1 Menu Project Build Options Project 선택 2 Menu Project Build Options Project General Library Path 설정 : C:\Program Files\Microchip\MPLAB C30\lib 3 Menu Project Build Options Project MPLAB LINK 30 Heap Size : 256 입력 92

93 3.3 MPLAB C30 컴파일러 10. MPLAB SIM 설정 1 Menu Debugger Select Tool MPLAB SIM 클릭 2 Menu Debugger Settings 클릭 3 Menu Debugger Settings Uart1 IO 클릭 : Enable Uart1 IO, Rewind Input, Window 선택 93

94 MicroChip bit MicroController 11. Build All 1 Menu Project Build All 클릭 (Ctrl + F10) 2 Output Window Build 탭에서메시지확인 : BUILD SUCCEEDED 확인 12. MPLAB SIM 실행 1 Menu Debugger Run (F9) 클릭 2 Output Window SIM Uart1 탭에서메시지확인 94

95 3.3 MPLAB C30 컴파일러 13. File Register를통한변수확인 1 Menu View File Register 클릭 2 ctrl+f 클릭후 charvariable 입력후엔터를누르면, File Register 즉, 데이터메모리에변수가할당된것을확인할수있다. 3 변수가할당된어드레스와값을확인해보자. 95

96 MicroChip bit MicroController 전처리문 상수선언 C 프로그래밍에서다음과같이선언하면, float PI = ; 이경우컴파일러는데이터메모리의 32비트 (4바이트) 영역을할당하여 PI라는이름으로지정하게된다. const float PI = ; PI라는변수는 const 라는키워드로인해프로그램메모리에할당이되며그값은읽기만가능한상수값이된다. 96

97 3.3 MPLAB C30 컴파일러 하지만, 임베디드프로그래밍에서이들사용법은데이터메모리또는프로그램메모리를불필요하게사용하고있기때문에효율적이지못한방법이될수있다. 이러한경우 #define 을이용하여사용하게된다. [ 선언법 ] #define PI 이경우컴파일러는 PI라는텍스트를 이라는상수값으로대체하게되며, 컴파일시소스코드에서 PI라는텍스트를만나게되면 이라는상수값으로대체하게된다. 즉, 어떠한메모리영역을사용하지않고사용될수있다는말이된다. 그러면, #define의사용법에대해알아보자. [ 사용법 ] #define name text [ 선언예 ] #define PI #define FOSC 10.0e6 #define BAUDRATE 9600 또한다음과같이파라미터를이용하여매크로로정의할수도있다. [ 선언예 ] #define PI #define area(r) PI * r * r #define multiply(a,b) a * b [ 사용예 ] AreaOfCircle = area(5); MyVar3 = multiply(myvar1, MyVar2); 97

98 MicroChip bit MicroController 다음과같이한줄이아닌여러줄을통해선언하는것도가능하다. [ 선언예 ] #define loop(n) for(i=1; i<=n; i++) { printf( %d\n,i); } [ 사용예 ] loop(5); loop(myvariable); #define 문사용시주의할점은문장의끝이세미콜론즉, ; 로끝나서는안된다는것이다. 만약아래와같이선언하게되면어떻게되는지살펴보자. #define MyConst 5; c = MyConst + 3; 이경우 MyConst 는 5; 와동일한텍스트로간주하게되므로, 결과적으로다음과같이사용한결과가된다. 즉, 컴파일시에러를발생시키게될것이다. c = 5; 전처리문사용실습 앞절에서수행했던것과동일한방법으로 Demo2 라는프로젝트를만들어보자. 절차 1. MPLAB IDE 실행 2. 디바이스선택 98

99 3.3 MPLAB C30 컴파일러 Menu Configure Select Device 클릭 Select Device 윈도우 : Device PIC24FJ128GA010 선택 OK 버튼클릭 3. 프로젝트생성 1 Menu Project New 클릭 2 Project Name : Demo2 입력 3 Project Directory : C:\Temp\Demo2 입력 4 OK 버튼클릭 4. C30 컴파일러선택 1 Menu Project Select Language Toolsuit : MPLAB C30 선택 5. 디바이스링커스크립트파일추가 1 프로젝트매니저윈도우의 Linker Scripts 폴더에서마우스우측버튼클릭 Add Files... 항목선택 2 p24fj128ga010.gld 파일클릭후열기 (Open) 버튼클릭 - 링커스크립트파일위치 : C:\Program Files\Microchip\MPLAB C30\Support\gld 6. C 소스코드생성하기 - Menu File New 클릭 - Menu File Save As 클릭 - 파일이름 : Demo2.c 입력후저장버튼클릭 7. 프로젝트에 C 소스코드추가 - 프로젝트매니저윈도우의 Source Files 폴더에서마우스우측버튼클릭 Add Files 선택 - C:\Temp\Demo2\Demo2.c 선택후열기 (Open) 버튼클릭 8. C 소스코드입력이제에디터윈도우의 Demo2.c 파일에다음과같이실습할 C 소스코드를입력하자. 99

100 MicroChip bit MicroController //#include <p24fj128ga010.h> #include <stdio.h> #define CONSTANT1 0x33 const CONSTANT2 = 0xCC; int variable1 = CONSTANT1; int variable2; //int variable2 = CONSTANT2; //This cannot be done with a constant defined with "const" int main(void) { variable2 = CONSTANT2; printf("the first constant is 0x%X\n", CONSTANT1); printf("the second constant is 0x%X\n", CONSTANT2); } while(1); 9. Build Option 설정 - Menu Project Build Options Project 선택 - Menu Project Build Options Project General : Library Path 설정 : C:\Program Files\Microchip\MPLAB C30\lib - Menu Project Build Options Project MPLAB LINK 30 : Heap Size : 256 입력 10. MPLAB SIM 설정 1 Menu Debugger Select Tool MPLAB SIM 클릭 2 Menu Debugger Settings 클릭 3 Menu Debugger Settings Uart1 IO 클릭 : Enable Uart1 IO, Rewind Input, Window 선택 11. Build All 1 Menu Project Build All 클릭 (Ctrl + F10) 2 Output Window Build 탭에서메시지확인 : BUILD SUCCEEDED 확인 100

101 3.3 MPLAB C30 컴파일러 12. MPLAB SIM 실행 - Menu Debugger Run (F9) 클릭 - Output Window SIM Uart1 탭에서메시지확인 13. Watch 윈도우사용하기 - Menu View Watch 클릭 - 그림과같이 Symbol Name 컬럼의하단의빈칸을마우스로클릭한후하나씩입력한다. - variable1, variable2, CONSTANT1, CONSTANT2 - 각각의심벌이름과그값을소스코드와비교하여확인한다. - 각각의심벌이름과 Address 컬럼의내용을확인한다. * variable1, variable2 : 데이터메모리영역의 0x08C2, 0x08C4에할당되었다. * CONSTANT2 : 프로그램메모리영역의 0x011D0 에할당되었다. P 라는마크는프로그램메모리를의미함. * CONSTANT1 : 어떠한메모리할당도하지않았다는것을의미한다. 101

102 MicroChip bit MicroController C30 컴파일러의상수 (literal) C30 컴파일러는정수형, 실수형 (Floating Point), 문자 (Character), 문자열 (String) 총 4가지기본상수형을갖고있다. 정수형과실수형은콤마 (,) 와빈공간 (space) 를사용할수없으며, 그값은자신의형이가질수있는범위를초과할수없고, 음수부호 (-) 가앞에올수있다. 102

103 3.3 MPLAB C30 컴파일러 정수형상수 <10진수표기 > 0 값을제외한다른값은 0 으로시작해서는안되며사용할수있는문자는 0~9이다. - 올바르게사용한예 : 잘못사용한예 : 32, <진수표기 > 0x (zero x) 또는 0X 로시작해야하며, 사용할수있는문자는 0~9와 A~F 또는 a~f이다. - 올바르게사용한예 : 0x 0x1 0x1A2B 0xBEEF - 잘못사용한예 : 0x5.3 0EA12 0xEG 53h <8진수표기 > 0 (zero) 로시작해야하며사용할수있는문자는 0~7이다. - 올바르게사용한예 : 잘못사용한예 : o o * 8진수표기법은 ANSI C 표준이지만, 요즘은거의사용되지않고있다. <2진수표기 > 0b 또는 0B 로시작해야하며사용할수있는문자는 0~1이다. - 올바르게사용한예 : 0b 0b1 0b 잘못사용한예 : 0b b12 10b * 2진수표기법은 ANSI C 에서명시하고있지않지만, 유용하게사용될수있기때문에 대부분의컴파일러에서지원이되고있다. 103

104 MicroChip bit MicroController < 한정어 > 변수와유사하게상수값도숫자의끝에첨자를사용하여특정데이터형으로변환할수있다. unsigned ( U 또는 u 사용 ) : 25U long ( L 또는 l 사용 ) : 25L unsigned long( UL 또는 ul 이용 ) : 0xF5UL * 첨자가없는숫자는 signed short 로간주한다 실수형상수 10진수정수형상수와동일하게표기하며, 소수점 (.) 과급수를표기하기위한 e 를사용 할수있다. - 올바르게사용한예 : 2.56e e 잘못사용한예 : 0x5Ae F 문자형상수단일인용부호 ( ) 를사용하여표기해야하며, 한글자의프린트가능한문자또는 \ 을사용한확장문자중단일문자즉, 한글자만사용해야한다. - 올바르게사용한예 : a T \n ( 스페이스 ) - 잘못사용한예 : me 문자열상수 이중인용부호 ( ) 를사용하여표기해야하며, 프린트가능한문자및 \ 을사용한확장 문자들을이용할수있고, 문자열의끝은널문자 ( \0 ) 가자동으로채워진다. - 올바르게사용한예 : Microchip\0, Hi\n, PIC, 2500, - 잘못사용한예 : He said, Hi 104

105 3.3 MPLAB C30 컴파일러 ex) char color[3] = RED ; color[0] = R color[1] = E color[2] = D ex) char color[] = RED ; color[0] = R color[1] = E color[2] = D color[3] = \0 < 확장문자예 > printf() 함수 printf() 함수는 C 언어표준라이브러리함수로써일반적으로텍스트를모니터또는프린터에출력하기위해사용하며, 임베디드시스템에서는 UART를통한출력으로사용되기도한다. 이미앞의실습에서사용한바와같이 MPLAB IDE의 MPLAB SIM에서는 Uart1 윈도우를통해그출력값을확인할수있도록지원하고있다. - 사용법 : printf( ControlString, arg_1, arg_2,..., arg_n); 105

106 MicroChip bit MicroController - 사용예 : printf( LoopCount = %d, i); printf( a = %d \n b = %d\n, a, b); < 출력포맷을위한변환문자 > 디버깅을위한유용한문자열포맷사용예 1) 진수 4자리값출력 ( 예 : 0x00F8) printf( Address of x = %#06x\n, x_ptr); - # : 진수값앞에 0x 붙이는옵션 - 06 : 6글자출력옵션 (0 포함 ) - x : 진수출력옵션 106

107 3.3 MPLAB C30 컴파일러 2) 진수대문자출력 printf( Address of x = 0x%#04X\n, x_ptr); - 04 : 4글자출력옵션 (0 포함 ) - X : 진수대문자로출력옵션 printf() 함수실습 전처리문사용실습 앞절에서수행했던것과동일한방법으로 Demo3 라는프로젝트를만들어보자. 절차 1. MPLAB IDE 실행 2. 디바이스선택 - Menu Configure Select Device 클릭 - Select Device 윈도우 : Device PIC24FJ128GA010 선택 - OK 버튼클릭 3. 프로젝트생성 - Menu Project New 클릭 - Project Name : Demo3 입력 - Project Directory : C:\Temp\Demo3 입력 - OK 버튼클릭 4. C30 컴파일러선택 - Menu Project Select Language Toolsuit : MPLAB C30 선택 5. 디바이스링커스크립트파일추가 - 프로젝트매니저윈도우의 Linker Scripts 폴더에서마우스우측버튼클릭 Add Files... 항목선택 - p24fj128ga010.gld 파일클릭후열기 (Open) 버튼클릭 * 링커스크립트파일위치 : C:\Program Files\Microchip\MPLAB C30\Support\gld 107

108 MicroChip bit MicroController 6. C 소스코드생성하기 - Menu File New 클릭 - Menu File Save As 클릭 - 파일이름 : Demo3.c 입력후저장버튼클릭 7. 프로젝트에 C 소스코드추가 - 프로젝트매니저윈도우의 Source Files 폴더에서마우스우측버튼클릭 Add Files 선택 - C:\Temp\Demo3\Demo3.c 선택후열기 (Open) 버튼클릭 8. C 소스코드입력이제에디터윈도우의 Demo3.c 파일에다음과같이실습할 C 소스코드를입력하자. //#include <p24fj128ga010.h> #include <stdio.h> int main(void) { printf("25 as decimal (d): %d\n", 25); printf("'a' as character (c): %c\n", 'a'); printf("'a' as decimal (d): %d\n", 'a'); printf("2.55 as float (f): %f\n", 2.55); printf("2.55 as decimal (d): %d\n", 2.55); printf("6.02e23 as exponent (e): %e\n", 6.02e23); printf("6.02e23 as decimal (d): %d\n", 6.02e23); printf("'microchip' as string (s): %s\n", "Microchip"); printf("'microchip' as decimal (d): %d\n", "Microchip"); } while(1); 9. Build Option 설정 - Menu Project Build Options Project 선택 - Menu Project Build Options Project General : Library Path 설정 : C:\Program Files\Microchip\MPLAB C30\lib - Menu Project Build Options Project MPLAB LINK 30 : Heap Size : 256 입력 108

109 3.3 MPLAB C30 컴파일러 10. MPLAB SIM 설정 3 Menu Debugger Select Tool MPLAB SIM 클릭 4 Menu Debugger Settings 클릭 5 Menu Debugger Settings Uart1 IO 클릭 : Enable Uart1 IO, Rewind Input, Window 선택 11. Build All 6 Menu Project Build All 클릭 (Ctrl+F10) 7 Output Window Build 탭에서메시지확인 : BUILD SUCCEEDED 확인 12. MPLAB SIM 실행 1 Menu Debugger Run(F9) 클릭 2 Output Window SIM Uart1 탭에서메시지확인 109

110 MicroChip bit MicroController 연산자 (Operators) 산술연산자 C30 컴파일러의산술연산자는다음표와같으며, 산술연산자사용시피연산자의데이터형에따라그결과값이결정되므로주의를필요로한다. 다음예를살펴보자. 다음예에서보는바와같이동일한값으로나누기연산을하지만그결과값은다르게되는것을알수있다. 즉, c = a / b; 연산을수행할때우측항부터연산을한후그결과값을좌측항의변수에저장하게되는데두개의피연산자가정수형데이터일때는그결과값이정수형이되고, 하나또는두개의피연산자가실수형일때는그결과값이실수형이되기때문이다. 따라서이러한연산을사용할때는데이터형에주의해서사용하도록해야한다 대입연산자대입연산자는특정값을특정저장공간에저장또는대입하는연산자이다. 즉, x += 5; 는 x = x + 5; 와같은표현이되며, 연산순서는우측항을먼저계산한후그결과값을좌측항에대입하게된다. 110

111 3.3 MPLAB C30 컴파일러 증감연산자 증감연산자는다음예에서보는바와같이전치 (Postfix) 및후치 (Prefix) 연산자로사용함에따라서그결과값이달라질수있으므로주의해서사용해야한다 관계연산자 관계연산자는두개의피연산자를비교하여그결과값이참 (TRUE) 이면 1, 거짓 (FALSE) 이면 0 을발생하게된다. 111

112 MicroChip bit MicroController C 프로그래밍에익숙하지않은엔지니어들이흔히범하는오류중한가지가대입연산자 (=) 와관계연산자 (==) 사용에있다. 참고로, 조건문에서 0이아닌값은항상참 (TRUE), 0 은거짓 (FALSE) 으로해석된다. 다음예를통해한번살펴보자. x = 2; if ( x == 5 ) // x가 5와같은지테스트를한후 False 이므로 printf() 미실행 { printf( OK! x is equal to 5 ); } x = 2; if ( x = 5 ) // x에 5를대입한후 x는 0이아니므로, True 발생, 따라서 printf() 실행 { printf( Oops! ); } 이미설명했듯이조건문에서대입연산자를쓸때는위와같은오류를범하기쉬우며, 수천라인이상되는코딩에서이와같은오류를찾는것은상당히어려운일이아닐수없다 논리연산자다음과같이논리연산자에는논리곱 (AND) 및논리합 (OR) 연산자가있으며, 단항연산자로써논리부정 (NOT) 연산자가있다. 이들연산자의결과값은참일때 1(TRUE), 거짓일때 0(FALSE) 를발생시킨다. 112

113 3.3 MPLAB C30 컴파일러 진논리연산자 2진논리연산자는각각의비트와비트가대응하여연산된결과값을발생하는연산자이다 쉬프트연산자 쉬프트연산자는왼쪽및오른쪽으로쉬프트하기위한연산자가있다. 왼쪽쉬프트연산자의경우, 왼쪽으로쉬프트되어밀려난왼쪽최상위비트 (MSB) 는사라지게되며, 오른쪽최하위비트 (LSB) 는 0 로채워진다. 113

114 MicroChip bit MicroController 오른쪽쉬프트연산자의경우, 데이터형에따라서그결과값이달라질수있으므로주의를요한다. 최하위비트 (LSB) 는사라지게되고 unsigned로선언된데이터의경우최상위비트는 0 로채워지게되고, sign으로선언된경우는부호 (0/1) 에따라서결정된다 메모리어드레싱연산자 메모리연산자는다음표와같이포인터, 배열, 구조체및공용체사용을위한어드레싱연산자가지원된다 기타연산자 지금까지설명한연산자외에함수호출, 형변환연산자, 삼항연산자, 콤머연산자등이지원되고있다. 114

115 3.3 MPLAB C30 컴파일러 다음예에서보는바와같이특정연산에있어서형변환연산자는유용하게사용될수있는연산자이다 연산자우선순위연산자를여러개사용하였을경우괄호가가장최우선하므로, 아래우선순위를암기하는것보다는괄호연산자를적절히사용하여오류를방지하는것이최선의방법이라할수있다. 115

116 MicroChip bit MicroController 1

117 3.3 MPLAB C30 컴파일러 다음의예는일부연산에대한컴파일러의연산우선순위에의해결정된실제연산순위를보여주고있다 연산자실습 앞절에서수행했던것과동일한방법으로 Demo4 라는프로젝트를만들어보자. 절차 1. MPLAB IDE 실행 2. 디바이스선택 - Menu Configure Select Device 클릭 - Select Device 윈도우 : Device PIC24FJ128GA010 선택 - OK 버튼클릭 3. 프로젝트생성 - Menu Project New 클릭 - Project Name : Demo4 입력 - Project Directory : C:\Temp\Demo4 입력 - OK 버튼클릭 4. C30 컴파일러선택 - Menu Project Select Language Toolsuit : MPLAB C30 선택 5. 디바이스링커스크립트파일추가 - 프로젝트매니저윈도우의 Linker Scripts 폴더에서마우스우측버튼클릭 Add Files... 항목선택 - p24fj128ga010.gld 파일클릭후열기 (Open) 버튼클릭 * 링커스크립트파일위치 : C:\Program Files\Microchip\MPLAB C30\Support\gld 117

118 MicroChip bit MicroController 6. C 소스코드생성하기 - Menu File New 클릭 - Menu File Save As 클릭 - 파일이름 : Demo4.c 입력후저장버튼클릭 7. 프로젝트에 C 소스코드추가 - 프로젝트매니저윈도우의 Source Files 폴더에서마우스우측버튼클릭 Add Files 선택 - C:\Temp\Demo4\Demo4.c 선택후열기 (Open) 버튼클릭 8. C 소스코드입력이제에디터윈도우의 Demo4.c 파일에다음과같이실습할 C 소스코드를입력하자. //#include <p24fj128ga010.h> #include <stdio.h> int main(void) { int x = 10; int y, z; float a, b, c, d; int i = 1, j = 0, k = 5; char m, n = 255; a = x + 5; b = x / 4; c = (float)x / 4; d = x ; y = a + b; z = a ; j = i++; k += i; m = n + 2; } while(1); 118

119 9. Build Option 설정 - Menu Project Build Options Project 선택 - Menu Project Build Options Project General : Library Path 설정 : C:\Program Files\Microchip\MPLAB C30\lib - Menu Project Build Options Project MPLAB LINK 30 : Heap Size : 256 입력 3.3 MPLAB C30 컴파일러 10. MPLAB SIM 설정 H. Menu Debugger Select Tool MPLAB SIM 클릭 I. Menu Debugger Settings 클릭 J. Menu Debugger Settings Uart1 IO 클릭 : Enable Uart1 IO, Rewind Input, Window 선택 11. Build All K. Menu Project Build All 클릭 (Ctrl + F10) L. Output Window Build 탭에서메시지확인 : BUILD SUCCEEDED 확인 12. Watch Window 설정 - Menu View Watch Window 클릭 - Symbol Name에변수추가하기 : 아래그림을참조하여 x, y, z, a, b, c, d, i, j, k, m, n 각각의변수를추가 - 변수들의해당값들은컴파일후에디스플레이되므로, 화면과다를수있음 119

120 MicroChip bit MicroController 13. MPLAB SIM 실행 A. Menu Debugger Run (F9) 클릭 14. Watch Window 변수값확인 - 각각의변수값확인 제어문 (Control Statement) 제어문은흔히알고있는 if~else 문과같이실행순서를제어하기위한문을말한다 if 문 조건문이참 (True) 면다음문즉, 중괄호 ({}) 안의문을수행하고, 거짓 (False) 이면실행하지않는다 if~else 문 이중조건문을이용하여두가지실행문을선택적으로실행할수있는제어문이다. 120

121 if~else if~else 문 다중 if 문을이용하여실행문을선택적으로실행할수있는제어문이다. 3.3 MPLAB C30 컴파일러 switch case 문 다중 if 문과유사한효율적인제어문이다 for 문 특정회수동안블록안의코드를반복하기위한제어문이다. 121

122 MicroChip bit MicroController while 문 조건문이참 (True) 인동안블록안의코드를반복하기위한제어문이며, 조건문에따라서단한번도블록안의코드를실행하지않을수있다 do while 문블록안의코드를수행한후조건문이참 (True) 인지판단하여반복을수행하는제어문이다. 다만, while 문과는달리블록안의코드를무조건한번은실행하고조건문에따라서단한번도블록안의코드를실행하지않을수있다 break 문 break문은루프 (Loop) 문에서즉시빠져나오기위한명령어로사용이되며, break 를만나게되면현재의카운팅을중지하고, 루프문을탈출하게된다. 또한앞에서설명한 switch case 에서사용되기도한다. 아래예에서는변수 i는 0~5까지만카운팅을하고, while 문을빠져나가게된다. 122

123 3.3 MPLAB C30 컴파일러 continue 문 continue문은현재의블록안의나머지부분실행을생략하고, break와는달리카운팅을계속적으로수행하기위해다시루프 (loop) 문으로돌아간다 조건문및루프문실습 앞절에서수행했던것과동일한방법으로 Demo5 라는프로젝트를만들어보자. 절차 1. MPLAB IDE 실행 2. 디바이스선택 - Menu Configure Select Device 클릭 - Select Device 윈도우 : Device PIC24FJ128GA010 선택 - OK 버튼클릭 3. 프로젝트생성 - Menu Project New 클릭 - Project Name : Demo5 입력 123

124 MicroChip bit MicroController - Project Directory : C:\Temp\Demo5 입력 - OK 버튼클릭 4. C30 컴파일러선택 - Menu Project Select Language Toolsuit : MPLAB C30 선택 5. 디바이스링커스크립트파일추가 - 프로젝트매니저윈도우의 Linker Scripts 폴더에서마우스우측버튼클릭 Add Files... 항목선택 - p24fj128ga010.gld 파일클릭후열기 (Open) 버튼클릭 * 링커스크립트파일위치 : C:\Program Files\Microchip\MPLAB C30\Support\gld 6. C 소스코드생성하기 - Menu File New 클릭 - Menu File Save As 클릭 - 파일이름 : Demo5.c 입력후저장버튼클릭 7. 프로젝트에 C 소스코드추가 - 프로젝트매니저윈도우의 Source Files 폴더에서마우스우측버튼클릭 Add Files 선택 - C:\Temp\Demo5\Demo5.c 선택후열기 (Open) 버튼클릭 8. C 소스코드입력 이제에디터윈도우의 Demo5.c 파일에다음과같이실습할 C 소스코드를입력하자. //#include <p24fj128ga010.h> #include <stdio.h> int i; int main(void) 124

125 3.3 MPLAB C30 컴파일러 { for (i=0; i < 5; i++) { printf("for loop iteration #%d\n", i); } i = 0; //Try i = 0 and i = 5 while(i < 5) { printf("while loop iteration #%d\n", i++); } i = 0; //Try i = 0 and i = 5 do { printf("do loop iteration #%d\n", i++); } while(i < 5); } //Loop forever while(1); 9. Build Option 설정 - Menu Project Build Options Project 선택 - Menu Project Build Options Project General : Library Path 설정 : C:\Program Files\Microchip\MPLAB C30\lib - Menu Project Build Options Project MPLAB LINK 30 : Heap Size : 256 입력 10. MPLAB SIM 설정 A. Menu Debugger Select Tool MPLAB SIM 클릭 B. Menu Debugger Settings 클릭 C. Menu Debugger Settings Uart1 IO 클릭 : Enable Uart1 IO, Rewind Input, Window 선택 125

126 MicroChip bit MicroController 11. Build All D. Menu Project Build All 클릭 (Ctrl + F10) E. Output Window Build 탭에서메시지확인 : BUILD SUCCEEDED 확인 12. MPLAB SIM 실행 A. Menu Debugger Run (F9) 클릭 B. Output Window에서출력값확인 switch 문실습 앞절에서수행했던것과동일한방법으로 Demo6 라는프로젝트를만들어보자. 절차 1. MPLAB IDE 실행 2. 디바이스선택 126

127 3.3 MPLAB C30 컴파일러 - Menu Configure Select Device 클릭 - Select Device 윈도우 : Device PIC24FJ128GA010 선택 - OK 버튼클릭 3. 프로젝트생성 - Menu Project New 클릭 - Project Name : Demo6 입력 - Project Directory : C:\Temp\Demo6 입력 - OK 버튼클릭 4. C30 컴파일러선택 - Menu Project Select Language Toolsuit : MPLAB C30 선택 5. 디바이스링커스크립트파일추가 - 프로젝트매니저윈도우의 Linker Scripts 폴더에서마우스우측버튼클릭 Add Files... 항목선택 - p24fj128ga010.gld 파일클릭후열기 (Open) 버튼클릭 * 링커스크립트파일위치 : C:\Program Files\Microchip\MPLAB C30\Support\gld 6. C 소스코드생성하기 - Menu File New 클릭 - Menu File Save As 클릭 - 파일이름 : Demo6.c 입력후저장버튼클릭 7. 프로젝트에 C 소스코드추가 - 프로젝트매니저윈도우의 Source Files 폴더에서마우스우측버튼클릭 Add Files 선택 - C:\Temp\Demo6\Demo6.c 선택후열기 (Open) 버튼클릭 127

128 MicroChip bit MicroController 8. C 소스코드입력 이제에디터윈도우의 Demo6.c 파일에다음과같이실습할 C 소스코드를입력하자. //#include <p24fj128ga010.h> #include <stdio.h> int channel; int main(void) { channel = 7; switch(channel) { case 2: printf("wbbm Chicago\n"); break; case 3: printf("dvd Player\n"); break; case 4: printf("wtmj Milwaukee\n"); break; case 5: printf("wmaq Chicago\n"); break; case 6: printf("witi Milwaukee\n"); break; case 7: printf("wls Chicago\n"); break; case 9: printf("wgn Chicago\n"); break; case 10: printf("wmvs Milwaukee\n"); break; case 11: printf("wttw Chicago\n"); break; case 12: printf("wisn Milwaukee\n"); break; case 8: case 13: printf("weak signals from South Bend\n"); break; case : printf("uhf Station\n"); break; default: printf("no Signal Available\n"); } } while(1); // NOTE: case values must be of an integer type (char, int, short, long) 9. Build Option 설정 - Menu Project Build Options Project 선택 - Menu Project Build Options Project General : Library Path 설정 : C:\Program Files\Microchip\MPLAB C30\lib 128

129 - Menu Project Build Options Project MPLAB LINK 30 : Heap Size : 256 입력 3.3 MPLAB C30 컴파일러 10. MPLAB SIM 설정 F. Menu Debugger Select Tool MPLAB SIM 클릭 G. Menu Debugger Settings 클릭 H. Menu Debugger Settings Uart1 IO 클릭 : Enable Uart1 IO, Rewind Input, Window 선택 11. Build All I. Menu Project Build All 클릭 (Ctrl + F10) J. Output Window Build 탭에서메시지확인 : BUILD SUCCEEDED 확인 12. MPLAB SIM 실행 A. Menu Debugger Run (F9) 클릭 B. Output Window에서출력값확인 129

130 MicroChip bit MicroController 함수모든 C 프로그램은하나이상의함수들로구성되어있다. 가장흔히볼수있는프로그램의시작부분인 main() 함수를그예로들수있다. 프로그래밍에서코딩을하다보면반복적으로사용되는연산또는명령어들을만나게되는데, 이와같은부분을모듈화하여필요할때마다불러서사용할수있도록지원해주는기능을함수라말할수있다. 이들함수는프로그래밍업무를효율적으로관리할수있도록지원할뿐만아니라모듈화된이들함수를재사용할수있기때문에불필요한시간을경감시켜주기도한다. 일례로우리가실습에서자주사용한표준 C 라이브러리함수인 printf() 함수는컴파일러제조사에의해이미만들어졌기때문에쉽게사용할수있었다. 만약이러한함수가없었다면사용자가직접이함수의기능을프로그래밍해야하는번거로움이있었을것이다 함수의선언문함수의선언은변수선언문과매우흡사하다. 함수는데이터반환수행시반환될데이터의형과동일한데이터형을갖고있어야하며, 변수와마찬가지로함수의이름을갖고있어야한다. 끝으로호출시함수에전달될파라미터를갖고있어야한다. 또한함수내부에추가적인변수를선언할수있는데이를지역변수라부르며이들지역변수들은함수의내부에서만액세스가가능하며, 함수의블록을벗어나는순간소멸된다. 끝으로함수사용시주의할사항은함수의내부에서는함수를선언할수없다는것이다. 130

131 3.3 MPLAB C30 컴파일러 함수의반환형함수이름의앞에붙이는함수반환형은함수내의 return문에사용되는반환되는데이터의형과동일하게사용하여야한다. 만약함수에의해반환되는값이없다면, 함수의반환형은 void가된다. 131

132 MicroChip bit MicroController 함수의파라미터함수의헤더에서선언된파라미터의이름은함수에서만사용가능한파라미터이다. 따라서이들이름은메인프로그램및다른함수에서사용되는변수와동일한이름의사용이가능하다. 만약함수가파라미터를필요로하지않는경우, void 키워드로대체되어야한다 함수선언및호출예 다음예는두수중큰수를반환하는사용자함수로써함수의반환형은반환값인변수 z 의데이터형인 int와동일하게사용하였음에주목하자. 이제사용자함수를호출하기위해서는다음그림과같이함수명과함께함수의인자인파라미터값을지정해주면된다 함수의저장클래스 (Storage Class) C30에서모든함수는기본적으로전역함수로처리된다. 따라서프로젝트의모든파일에서참조가능한전역함수는키워드 extern 이불필요하며해당파일에서만참조할수있는지역함수로사용할때는키워드 static을사용해야한다. 132

133 함수실습 앞절에서수행했던것과동일한방법으로 Demo7 라는프로젝트를만들어보자. 3.3 MPLAB C30 컴파일러 절차 1. MPLAB IDE 실행 2. 디바이스선택 - Menu Configure Select Device 클릭 - Select Device 윈도우 : Device PIC24FJ128GA010 선택 - OK 버튼클릭 3. 프로젝트생성 - Menu Project New 클릭 - Project Name : Demo7 입력 - Project Directory : C:\Temp\Demo7 입력 - OK 버튼클릭 4. C30 컴파일러선택 - Menu Project Select Language Toolsuit : MPLAB C30 선택 5. 디바이스링커스크립트파일추가 - 프로젝트매니저윈도우의 Linker Scripts 폴더에서마우스우측버튼클릭 Add Files... 항목선택 - p24fj128ga010.gld 파일클릭후열기 (Open) 버튼클릭 * 링커스크립트파일위치 : C:\Program Files\Microchip\MPLAB C30\Support\gld 6. C 소스코드생성하기 - Menu File New 클릭 - Menu File Save As 클릭 - 파일이름 : Demo7.c 입력후저장버튼클릭 133

134 MicroChip bit MicroController 7. 프로젝트에 C 소스코드추가 - 프로젝트매니저윈도우의 Source Files 폴더에서마우스우측버튼클릭 Add Files 선택 - C:\Temp\Demo7\Demo7.c 선택후열기 (Open) 버튼클릭 8. C 소스코드입력 이제에디터윈도우의 Demo7.c 파일에다음과같이실습할 C 소스코드를입력하자. //#include <p24fj128ga010.h> #include <stdio.h> typedef struct { float re; float im; } complex; // Real part // Imaginary part complex a, b, c; int i, j; complex ComplexAdd(complex x, complex y); int IntegerAdd(int v, int w); int main(void) { a.re = 2.5; a.im = 5.0; b.re = 1.5; b.im = 2.0; i = 3; j = 2; c = ComplexAdd(a,b); printf("c = %f + j%f\n", c.re, c.im); printf("k = %d\n", i + j); 134

135 3.3 MPLAB C30 컴파일러 } while(1); complex ComplexAdd(complex x, complex y) { complex z; z.re = x.re + y.re; z.im = x.im + y.im; return z; } int IntegerAdd(int v, int w) { return (v + w); } 9. Build Option 설정 - Menu Project Build Options Project 선택 - Menu Project Build Options Project General : Library Path 설정 : C:\Program Files\Microchip\MPLAB C30\lib - Menu Project Build Options Project MPLAB LINK 30 : Heap Size : 256 입력 10. MPLAB SIM 설정 K. Menu Debugger Select Tool MPLAB SIM 클릭 L. Menu Debugger Settings 클릭 M. Menu Debugger Settings Uart1 IO 클릭 : Enable Uart1 IO, Rewind Input, Window 선택 11. Build All N. Menu Project Build All 클릭 (Ctrl + F10) O. Output Window Build 탭에서메시지확인 : BUILD SUCCEEDED 확인 135

136 MicroChip bit MicroController 12. MPLAB SIM 실행 A. Menu Debugger Run (F9) 클릭 B. Output Window에서출력값확인 배열 (Array) 배열은동일한데이터형으로된다중데이터의저장소를말한다. 이들다중데이터는배열의인덱스라불리는순차적으로매겨진번호에의해순차적으로저장되며, 배열의인덱스는 0부터매겨진다. 136

Motor Control Solution

Motor Control Solution Motor Control Solution 마이크로칩에서는 Stepper, Brushed-DC, AC Induction, Switched Reluctance Brushless-DC 등모터종류별특성및동작방식에맞는 MCU가준비되어있어, User가 Motor를이용한 Application을개발하려할때에가장적절한 Solution을제시해줄수있다. 이중 FFT나 PID연산등정밀한모터제어를실행하기위해꼭해주어야하는빠른

More information

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt) 마이크로칩 USB Host & Device 부트로더기능실습 한국마이크로칩서한석부장 (CAE) 2009-09-07 마이크로칩 16 비트 USB 데모보드세팅 Explorer 16 + USB PICtail Plus Daughter Board + USB PIMs Part #: DM240001 Part #: AC164131 Part #: MA240014(PIC24FJ256GB11)

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft Word - PEB08_USER_GUIDE.doc 0. PEB08 이란? PEB08(PIC EVALUATION BOARD 8bits) 은 Microchip 8bit Device 개발을쉽고편리하게할수있는보드입니다. 1. 다양한 8bit Device 지원 기존대부분의 8bit 보드의경우일부 Pin-Count만지원을하였지만, PEB08은 PIC10, PIC12, PIC16, PIC18의 DIP Type Package의모든

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

슬라이드 1

슬라이드 1 CCS v4 사용자안내서 CCSv4 사용자용예제따라하기안내 0. CCS v4.x 사용자 - 준비사항 예제에사용된 CCS 버전은 V4..3 버전이며, CCS 버전에따라메뉴화면이조금다를수있습니다. 예제실습전준비하기 처음시작하기예제모음집 CD 를 PC 의 CD-ROM 드라이브에삽입합니다. 아래안내에따라, 예제소스와헤더파일들을 PC 에설치합니다. CD 드라이브 \SW\TIDCS\TIDCS_DSP80x.exe

More information

슬라이드 1

슬라이드 1 Delino EVM 용처음시작하기 - 프로젝트만들기 (85) Delfino EVM 처음시작하기앞서 이예제는타겟보드와개발홖경이반드시갖추어져있어야실습이가능합니다. 타겟보드 : Delfino EVM + TMS0F85 초소형모듈 개발소프트웨어 : Code Composer Studio 4 ( 이자료에서사용된버전은 v4..입니다. ) 하드웨어장비 : TI 정식 JTAG

More information

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D> VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE

More information

<C7A5C1A6C1F62E687770>

<C7A5C1A6C1F62E687770> 마이크로칩마이크로컨트롤러응용모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤모터컨트롤한국마이크로칩기술지원부

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

2. Step 2 : Select Device Step 2 에서는 Device 드롭 - 다운리스트에서사용자가자신의프로젝트에서사용할디바이스를선택할수있다. 선택가능한디바이스의범위를줄이려면디바이스의제품군 (Family) 를먼저선택하는편이좋다. < 그림 > 프로젝트마법사 Se

2. Step 2 : Select Device Step 2 에서는 Device 드롭 - 다운리스트에서사용자가자신의프로젝트에서사용할디바이스를선택할수있다. 선택가능한디바이스의범위를줄이려면디바이스의제품군 (Family) 를먼저선택하는편이좋다. < 그림 > 프로젝트마법사 Se MPLAB X IDE User Guide 새프로젝트만들기 MPLAB X IDE 는프로젝트를기반으로모든동작이이루어진다. 따라서 MPLAB X IDE 의사용자는프로젝트를생성및설정할수있어야한다. 새프로젝트는아래의방법들중에서한가지를선택함으로해서만들어진다. Start Page 의 Learn and Discover tab 에서생성하는방법 : Dive In Create

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

목차 다운로드및설치 1. 다운로드 2. 설치 3. MPLAB TM X IDE 데스크탑 기본사용법 1. 새프로젝트만들기 2. 프로젝트속성 (Properties) 조정 3. 디버거, 프로그램, 프로그램언어옵션설정 4. 프로그램언어위치설정 5. 기타툴옵션설정 6. 새파일만들

목차 다운로드및설치 1. 다운로드 2. 설치 3. MPLAB TM X IDE 데스크탑 기본사용법 1. 새프로젝트만들기 2. 프로젝트속성 (Properties) 조정 3. 디버거, 프로그램, 프로그램언어옵션설정 4. 프로그램언어위치설정 5. 기타툴옵션설정 6. 새파일만들 MPLAB TM X IDE 한글사용설명서 본문서에서사용되는이미지는 MPLAB X IDE 의버전에따라다소상이할수 있습니다. 목차 다운로드및설치 1. 다운로드 2. 설치 3. MPLAB TM X IDE 데스크탑 기본사용법 1. 새프로젝트만들기 2. 프로젝트속성 (Properties) 조정 3. 디버거, 프로그램, 프로그램언어옵션설정 4. 프로그램언어위치설정 5.

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

MPLAB C18 C

MPLAB C18 C MPLAB C18 C MPLAB C18 MPLAB C18 C MPLAB C18 C #define START, c:\mcc18 errorlevel{0 1} char isascii(char ch); list[list_optioin,list_option] OK, Cancel , MPLAB IDE User s Guide MPLAB C18 C

More information

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

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp l Y ( X g, Y g ) r v L v v R L θ X ( X c, Yc) W (a) (b) DC 12V 9A Battery 전원부 DC-DC Converter +12V, -12V DC-DC Converter 5V DC-AC Inverter AC 220V DC-DC Converter 3.3V Motor Driver 80196kc,PWM Main

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

CAN-fly Quick Manual

CAN-fly Quick Manual adc-171 Manual Ver.1.0 2011.07.01 www.adc.co.kr 2 contents Contents 1. adc-171(rn-171 Pack) 개요 2. RN-171 Feature 3. adc-171 Connector 4. adc-171 Dimension 5. Schematic 6. Bill Of Materials 7. References

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

Microsoft Word - ICD2PLUS_2003.doc

Microsoft Word - ICD2PLUS_2003.doc 제품요약 USB ICD2 PLUS 는다음과같은특성을가지고있습니다. 1. In-Circuit Debugger (ICD) 및 In-Circuit Serial Programmer (ICSP) 기능 2. USB (Fullspeed 2Mbits/s) 를통한 PC Interface 3. MPLAB IDE GUI 지원 4. PC 를통한펌웨어업그레이드 5. 실시간또는단계별코드실행기능

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63> SAM4S Printer Driver Installer 달리명시하지않은한, 인쇄또는복사된문서는통제하지않는문서임 목 차 1. 1. WINDOWS DRIVER INSTALLER 설치 설치...... 2 2. 프린터추가...... 5 3. 프린터제거...... 19 4. 프린터추가 / 제거선택...... 21 5. 프로그램추가 / 제거...... 21 SHC- 11-01-

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기

More information

Microsoft PowerPoint - SY-A3PSK-V1.pptx

Microsoft PowerPoint - SY-A3PSK-V1.pptx SY-A3PSK -V1.0 Low power Single chip, single voltage Nonvolatile, Reprogrammable Live at Power-up Live at Power up Maximum design security Firm-error immune Clock management Advanced I/O standards User

More information

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드] Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

[ 마이크로프로세서 1] 1 주차 2 차시. 마이크로프로세서와마이크로컨트롤러발달과정 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습

[ 마이크로프로세서 1] 1 주차 2 차시. 마이크로프로세서와마이크로컨트롤러발달과정 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습내용 1 : 마이크로프로세서발달과정 1. 마이크로프로세서종류 1 인텔 ( intel) 80 계열 2 모토롤라 (motorola) 68 계열 2. 인텔 80 계열 1 최초 1971

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

2주차: 입출력 제어 복습

2주차: 입출력 제어 복습 마이크로프로세서 응용및실습 ` 13-14 주차 : 직렬통신 (2) 한철수 전자공학과 2/35 직렬통신과병렬통신 직렬통신 한가닥의선으로송수신할데이터를차례대로전송하는방식 장점 : 통신선로가적기때문에경제적임 단점 : 전송속도가느림. 송수신약속이복잡해짐 병렬통신 여러가닥의선으로동시에여러개의데이터를전송하는방식 장점 : 전송속도가빠름 단점 : 직렬통신보다비쌈 3/35

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

VZ94-한글매뉴얼

VZ94-한글매뉴얼 KOREAN / KOREAN VZ9-4 #1 #2 #3 IR #4 #5 #6 #7 ( ) #8 #9 #10 #11 IR ( ) #12 #13 IR ( ) #14 ( ) #15 #16 #17 (#6) #18 HDMI #19 RGB #20 HDMI-1 #21 HDMI-2 #22 #23 #24 USB (WLAN ) #25 USB ( ) #26 USB ( ) #27

More information

ADP-2480

ADP-2480 Mitsubishi PLC 접속 GP 는 Mitsubishi FX Series 와통신이가능합니다. 시스템구성 6 7 8 GP-80 RS- Cable RS-C Cable FXN--BD FXN--BD 6 FX Series(FXS,FXN,FXN,FXNC, FXU) 7 FXS, FXN 8 FXN FX Series 는기본적으로 RS- 통신을하며, RS-/ converter

More information

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers C Programming 포인터 (Pointers) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 포인터의이해 다양한포인터 2 포인터의이해 포인터의이해 포인터변수선언및초기화 포인터연산 다양한포인터 3 주소연산자 ( & ) 포인터의이해 (1/4) 변수와배열원소에만적용한다. 산술식이나상수에는주소연산자를사용할수없다. 레지스터변수또한주소연산자를사용할수없다.

More information

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

MAX+plus II Getting Started - 무작정따라하기 무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

RealDSP UT 프로그램 메뉴얼

RealDSP UT 프로그램 메뉴얼 Motorola Programmer ( 모델명 : MDProg16) 사용설명서 UUU 리얼시스 (RealSYS) Web: www.realsys.co.kr Tel: 031-420-4326 Fax: 031-420-4329-1 - 1. Motorola Programmer 프로그램특징 A. JTAG & OnCE 기능을이용한 Motorola 의내부플래시메모리 Writing

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Microprocessor) 1. 마이크로프로세서란? 1 작은실리콘칩위에트랜지스터를수천만개집적한소자 2 마이크로 [μ] 는매우작은크기, 프로세서는처리기혹은 CPU를뜻하므로

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 7주차 AVR의 A/D 변환기제어레지스터및관련실습 Next-Generation Networks Lab. 3. 관련레지스터 표 9-4 레지스터 ADMUX ADCSRA ADCH ADCL 설명 ADC Multiplexer Selection Register ADC 의입력채널선택및기준전압선택외 ADC Control and Status Register A ADC 의동작을설정하거나동작상태를표시함

More information

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

untitled

untitled CAN BUS RS232 Line Ethernet CAN H/W FIFO RS232 FIFO IP ARP CAN S/W FIFO TERMINAL Emulator COMMAND Interpreter ICMP TCP UDP PROTOCOL Converter TELNET DHCP C2E SW1 CAN RS232 RJ45 Power

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

Microsoft Word - EastSocket매뉴얼_ _.doc

Microsoft Word - EastSocket매뉴얼_ _.doc USB 전원을이용한 SMD 패키지라이팅지원보드 저가의라이팅장비를사용하여 SMD 패키지마이컴을라이팅할수있도록지원하는장비입니다. 각종제품개발시마이컴을 SMD로사용하는추세로이를양산에적용시고가의장비를사용해야했습니다. 아니면보드에다운로더를사용하여마이컴라이팅을했습니다. 그에따른생산속도의저하및고가의장비구입에따른경제적부담이컸습니다. 이를대처하기위해저가및기존개발에사용한장비를그대로사용하여라이팅을할수있는지원장비를개발했습니다.

More information

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 Outline n n n n n n 보드개요보드연결필수패키지, Tool-Chain 설치 Kernel, file system build Fastboot 및 Tera Term설치 Kernel, file system 이미지전송및설치 - 2 - Young-Jin Kim X-Hyper320TKU

More information

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E. ASF(Atmel Software Framework) 환경을이용한프로그램개발 1. New Project Template 만들기 A. STK600 Board Template를이용한 Project 만들기 i. New Project -> Installed(C/C++) -> GCC C ASF Board Project를선택하고, 1. Name: 창에 Project Name(

More information

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Outline Network Network 구조 Source-to-Destination 간 packet 전달과정 Packet Capturing Packet Capture 의원리 Data Link Layer 의동작 Wired LAN Environment

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

CODESYS 런타임 설치과정

CODESYS 런타임 설치과정 CODESYS 런타임설치과정 CODESYS Control RTE / SoftMotion RTE Setup Web: www.altsoft.kr E-mail: altsoft@altsoft.kr Tel: 02-547-2344 목 차 CODESYS 런타임 - Control RTE, SoftMotion RTE... 2 다운로드및설치과정... 2 CODESYS EtherCAT

More information

hd1300_k_v1r2_Final_.PDF

hd1300_k_v1r2_Final_.PDF Starter's Kit for HelloDevice 1300 Version 11 1 2 1 2 3 31 32 33 34 35 36 4 41 42 43 5 51 52 6 61 62 Appendix A (cross-over) IP 3 Starter's Kit for HelloDevice 1300 1 HelloDevice 1300 Starter's Kit HelloDevice

More information

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - es-arduino-lecture-03 임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습

More information

Microsoft PowerPoint - 권장 사양

Microsoft PowerPoint - 권장 사양 Autodesk 제품컴퓨터사양 PRONETSOFT.CO 박경현 1 AutoCAD 시스템사양 시스템요구사양 32 비트 AutoCAD 2009 를위한시스템요구사항 Intel Pentium 4 프로세서 2.2GHz 이상, 또는 Intel 또는 AMD 듀얼 코어프로세서 16GH 1.6GHz 이상 Microsoft Windows Vista, Windows XP Home

More information

슬라이드 제목 없음

슬라이드 제목 없음 ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.

More information

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와 EEPROM 에프로그램메모리및데이터를써 (Write, Re

1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와 EEPROM 에프로그램메모리및데이터를써 (Write, Re 매뉴얼 (P/N: LK-AVRISP mkii USB) 이경남 L K 임베디드 2017 LK EMBEDDED User Guide Version 0.3 페이지 1 1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 BOOTLOADER Jo, Heeseung 부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 3 장 : 변수와데이터형 2012 년 이은주 학습목표 변수와상수의개념에대해알아본다. 리터럴상수, 매크로상수, const 변수에대해알아본 다. C 언어의데이터형에대해알아본다. 2 목차 변수와상수 변수 상수 데이터형 문자형 정수형 실수형 sizeof 연산자 3 변수와상수 변수 : 값이변경될수있는데이터 상수 : 값이변경될수없는데이터

More information

서보교육자료배포용.ppt

서보교육자료배포용.ppt 1. 2. 3. 4. 1. ; + - & (22kW ) 1. ; 1975 1980 1985 1990 1995 2000 DC AC (Ferrite) (NdFeB; ) /, Hybrid Power Thyrister TR IGBT IPM Analog Digital 16 bit 32 bit DSP RISC Dip SMD(Surface Mount Device) P,

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터 운영체제실습 Raspbian 설치 2017. 3 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 설치 1. 라즈비안 (Raspbian 설치 ) 2. 설치후, 설정 설정사항 Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로

More information

1. 제품소개및설명 제품특징 그림. 개발장비사진 - AVR FLASH READ/WRITE 가능 - AVR ISP 프로그래밍방식을지원하는 ATmega8, ATmega16, ATmega32, ATmega64, ATmega128, ATmega 등다수의 AVR MC

1. 제품소개및설명 제품특징 그림. 개발장비사진 - AVR FLASH READ/WRITE 가능 - AVR ISP 프로그래밍방식을지원하는 ATmega8, ATmega16, ATmega32, ATmega64, ATmega128, ATmega 등다수의 AVR MC USB AVR ISP 개발장비매뉴얼 (Model: V02) WWW.LKEMBEDDED.CO.KR 2010 LK EMBEDDED User Guide Version 1.0 페이지 1 1. 제품소개및설명 제품특징 그림. 개발장비사진 - AVR FLASH READ/WRITE 가능 - AVR ISP 프로그래밍방식을지원하는 ATmega8, ATmega16, ATmega32,

More information

1_12-53(김동희)_.hwp

1_12-53(김동희)_.hwp 본논문은 2012년전력전자학술대회우수추천논문임 Cascaded BuckBoost 컨버터를 이용한 태양광 모듈 집적형 저전압 배터리 충전 장치 개발 472 강압이 가능한 토폴로지를 이용한 연구도 진행되었지만 제어 알고리즘의 용의성과 구조의 간단함 때문에 BuckBoost 컨버터 또는 Sepic 컨버터를 이용하여 연구 가 진행되었다[10][13]. 태양광 발전

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

그룹웨어와 XXXXX 제목 예제

그룹웨어와 XXXXX 제목 예제 데이터통신 부호화 (encoding) 부호화 (Encoding) 의개념 정보 Encoder 신호 1 Digital - to - Digital 2 Analog - to - Digital 3 Digital - to - Analog 4 Analog - to - Analog 2 1 Digital-to-Digital Encoding Digital 정보를 Digital

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

Microsoft Word doc

Microsoft Word doc 2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.

More information

PowerPoint Presentation

PowerPoint Presentation 오에스아이소프트코리아세미나세미나 2012 Copyright Copyright 2012 OSIsoft, 2012 OSIsoft, LLC. LLC. PI Coresight and Mobility Presented by Daniel Kim REGIONAL 세미나 SEMINAR 세미나 2012 2012 2 Copyright Copyright 2012 OSIsoft,

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 변수와상수의개념에대해알아본다.

More information

MR-3000A-MAN.hwp

MR-3000A-MAN.hwp ITS Field Emulator for Traffic Local Controller [ MR-3000A ] User's Manual MORU Industrial Systems. www.moru.com - 1 - 1. 개요 MR-3000A는교통관제시스템에있어서현장용교통신호제어기의개발, 신호제어알고리즘의개발및검증, 교통신호제어기생산 LINE에서의자체검사수단등으로활용될수있도록개발된물리적모의시험장치이다.

More information

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

Microsoft PowerPoint - 30.ppt [호환 모드] 이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST

More information

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 언어 변환 1.4. 기대 효과 4.4. 프로그램 Restructuring 4.5. 소스 모듈 관리 2. SeeMAGMA 적용 전략 2.1. SeeMAGMA

More information

JDK이클립스

JDK이클립스 JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트

More information

tut_modelsim(student).hwp

tut_modelsim(student).hwp ModelSim 사용법 1. ModelSim-Altera 를이용한 Function/RTL 시뮬레이션 1.1. 테스트벤치를사용하지않는명령어기반시뮬레이션 1.1.1. 시뮬레이션을위한하드웨어 A B S C 그림 1. 반가산기 1.1.2. 작업디렉토리 - File - Change Directory 를클릭하여작업디렉토리지정. 1.1.3. 소스파일작성 - 모델심편집기나기타편집기가능

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

USER Manual

USER Manual KOR V1.2 EPIC-QM77 PLC Quick Guide Web: www.altsoft.kr E-mail: altsoft@altsoft.kr Tel: 02-547-2344 Features Processor - Intel 3rd Core i7-3555le/celeron 847E Memory - 204-pin SODIMM DDR3 1333/1600MHz,

More information

DSP_MON 프로그램 메뉴얼

DSP_MON 프로그램 메뉴얼 UART_CAN Analyzer 윈도우 프로그램 사용자 메뉴얼 리얼시스 TEL : 031-420-4326 FAX : 031-420-4329 주소 : 경기도 안양시 동안구 관양동 799 안양메가밸리 319호 - 1 - UART_CAN Analyzer 제품을 구입해 주셔서 감사합니다. 본 제품을 구입하신 고객께서는 먼저 사용 설명서를 잘 읽어 보시고 제품을 사용하여

More information

TDB 3000 Series Full Closed Loop STEP DRIVER의특징 Feedback-Loop로인한진동이없음 감속기없이높은토크구현 높은정밀도 정확한속도제어 SERVO DRIVER의특징 위치유지력 탈조가없음 토크제어가능 STEP DRIVER 와 SERVO

TDB 3000 Series Full Closed Loop STEP DRIVER의특징 Feedback-Loop로인한진동이없음 감속기없이높은토크구현 높은정밀도 정확한속도제어 SERVO DRIVER의특징 위치유지력 탈조가없음 토크제어가능 STEP DRIVER 와 SERVO Full Closed Loop STEP DRIVER의특징 Feedback-Loop로인한진동이없음 감속기없이높은토크구현 높은정밀도 정확한속도제어 SERVO DRIVER의특징 위치유지력 탈조가없음 토크제어가능 STEP DRIVER 와 SERVO DRIVER 의장점을일체화저발열및토크특성우수 TDB 000 V 48 바이폴라 (Bipolar) Closed-Loop 스텝모터드라이버

More information

Rev V0. Date 0 /0/ PICFA 확장형개발보드매뉴얼. 제품소개및특징. 제품소개 < 그림.> PICFA 확장형개발보드사진 Microchip사의 비트프로세서인 PICFA MCU를이용하여학습및개발을할수있는 PIC 확장형개발보드입니다. 초보자를세심하게배려하기위하여

Rev V0. Date 0 /0/ PICFA 확장형개발보드매뉴얼. 제품소개및특징. 제품소개 < 그림.> PICFA 확장형개발보드사진 Microchip사의 비트프로세서인 PICFA MCU를이용하여학습및개발을할수있는 PIC 확장형개발보드입니다. 초보자를세심하게배려하기위하여 Rev V0. Date 0 /0/ PICFA 확장형개발보드매뉴얼 PICFA 확장형개발보드매뉴얼 (Model: LK-PICF-DB) 이경남 L K 임베디드 0 LK EMBEDDED LK-PICF-DB Manual version.0 페이지 Rev V0. Date 0 /0/ PICFA 확장형개발보드매뉴얼. 제품소개및특징. 제품소개 < 그림.> PICFA 확장형개발보드사진

More information