graphic lcd simulator · 2018-06-24 · graphic lcd simulator software 사용설명서 iv 5.17...

49
ORDERING CODE: HLCDSIM/UM/KO/R0 Graphic LCD Simulator SOFTWARE 사용설명서 사용설명서 사용설명서 사용설명서 REVISION 0 Research is your business;™ Instrumentation is our job. PQRS Corporation 2010

Upload: others

Post on 06-Feb-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

  • ORDERING CODE: HLCDSIM/UM/KO/R0

    Graphic LCD Simulator™

    SOFTWARE

    사용설명서사용설명서사용설명서사용설명서 REVISION 0

    Research is your business;™

    Instrumentation is our job. PQRS Corporation

    2010

  • Graphic LCD Simulator™

    SOFTWARE 사용설명서사용설명서사용설명서사용설명서

    REVISION 0

    Copyright © 2010, PQRS Corporation, all right reserved.

    ORDERING CODE: HLCDSIM/UM/KO/R0

    이 사용설명서를 작성함에 있어서 오류가 없게 하기 위하여 최선을 노력을

    기울였으나, 이 사용설명서에는 문법적 오류, 기술적 부정확성 또는 오식이

    있을 수 있다. 공급자는 이러한 오류나 부정확성에 기인하는 어떤 손상이나

    손실에 대해서도 책임지지 아니한다. 공급자는 제품의 성능 개선 또는 이

    사용설명서의 내용의 명료성 및 정확성을 개선하기 위해서 언제라도, 어떤

    사용자에게라도 사전 통보 없이 이 사용설명서의 내용을 변경할 수 있다.

    이 사용설명서에서 설명하는 어떤 문장, 그림, 그래프, 표, 프로그램,

    앨거리듬 등의 정보, 또는 이 사용설명서가 기술하는 제품을 사용함에 있어서,

    실제 시스템에 대한 적용성을 결정을 하기 위해서는 시스템 전반에 관한

    사항과 관련하여 사전에 이 모든 정보를 충분히 평가하여 보기를 권장한다.

    공급자는 이 정보들이나 제품을 올바로 평가하지 아니하고 사용하여서

    발생할 수 있는 어떤 손상이나 손실에 대해서도 책임지지 아니한다.

    이이이이 사용설명서에사용설명서에사용설명서에사용설명서에 나타나는나타나는나타나는나타나는 제삼자의제삼자의제삼자의제삼자의 상호상호상호상호, 등록상표등록상표등록상표등록상표 또는또는또는또는 상표에상표에상표에상표에 대한대한대한대한 모든모든모든모든 권리는권리는권리는권리는 그그그그 소유자에게소유자에게소유자에게소유자에게 있다있다있다있다.

  • iii

    Graphic LCD Simulator™ SOFTWARE 사용설명서사용설명서사용설명서사용설명서

    목차목차목차목차

    1. 개요개요개요개요 1

    2. 시작하기시작하기시작하기시작하기 3

    2.1 Graphic LCD Simulator 기능을기능을기능을기능을 간단하게간단하게간단하게간단하게 살펴살펴살펴살펴 보기보기보기보기 3

    3. 기본적인기본적인기본적인기본적인 기능기능기능기능 7 3.1 LCD의의의의 초기화초기화초기화초기화 7

    3.2 LCD의의의의 화면화면화면화면 지우기지우기지우기지우기 7 3.3 LCD에에에에 문장을문장을문장을문장을 출력하기출력하기출력하기출력하기 7

    3.3.1 문장문장문장문장 입력기입력기입력기입력기 7 3.3.2 특수특수특수특수 문자문자문자문자 입력기입력기입력기입력기 8

    3.4 글자체의글자체의글자체의글자체의 선택선택선택선택 8 3.4.1 반자체에반자체에반자체에반자체에 대한대한대한대한 특별한특별한특별한특별한 설명설명설명설명 8

    3.4.2 ASCII text font 9 3.5 굵은굵은굵은굵은 체의체의체의체의 선택선택선택선택 9

    3.6 넓은넓은넓은넓은 글자체의글자체의글자체의글자체의 선택선택선택선택 9 3.7 흑백흑백흑백흑백 반전반전반전반전 기능기능기능기능 10

    3.8 작은작은작은작은 그래픽그래픽그래픽그래픽을을을을 출력하기출력하기출력하기출력하기 10 3.9 매크로의매크로의매크로의매크로의 포착과포착과포착과포착과 삽입삽입삽입삽입 10

    3.10 보이기보이기보이기보이기 페이지와페이지와페이지와페이지와 그리기그리기그리기그리기 페이지페이지페이지페이지 10

    4. Graphic designer 13 4.1 작은작은작은작은 그래픽의그래픽의그래픽의그래픽의 편집편집편집편집 13

    4.2 특수특수특수특수 문자문자문자문자 입력기에서입력기에서입력기에서입력기에서 불러불러불러불러 오기오기오기오기 14 4.3 다른다른다른다른 그래픽그래픽그래픽그래픽 프로그램에서프로그램에서프로그램에서프로그램에서 그림을그림을그림을그림을 복사하기복사하기복사하기복사하기 14

    4.4 디스크에서디스크에서디스크에서디스크에서 읽어읽어읽어읽어 오기오기오기오기 14 4.5 디스크에디스크에디스크에디스크에 저장하기저장하기저장하기저장하기 14

    4.6 작은작은작은작은 그래픽그래픽그래픽그래픽 파일파일파일파일 이름에이름에이름에이름에 대한대한대한대한 제한제한제한제한 14

    5. 매크로매크로매크로매크로의의의의 사용과사용과사용과사용과 편집편집편집편집 17 5.1 매크로의매크로의매크로의매크로의 기록기록기록기록 시작시작시작시작 17 5.2 매크로의매크로의매크로의매크로의 기록기록기록기록 정지정지정지정지 17

    5.3 매크로의매크로의매크로의매크로의 기록기록기록기록 시작과시작과시작과시작과 정정정정지에지에지에지에 대한대한대한대한 특별한특별한특별한특별한 설명설명설명설명 18 5.4 매크로매크로매크로매크로를를를를 저장저장저장저장하기하기하기하기 18

    5.5 저장된저장된저장된저장된 매크로매크로매크로매크로 불러불러불러불러 오기오기오기오기 18 5.6 매크로를매크로를매크로를매크로를 다른다른다른다른 이름으로이름으로이름으로이름으로 저장하기저장하기저장하기저장하기 18

    5.7 새로운새로운새로운새로운 매크로의매크로의매크로의매크로의 작성작성작성작성 18 5.8 매크로에서매크로에서매크로에서매크로에서 프로그램프로그램프로그램프로그램 소스소스소스소스 만들기만들기만들기만들기 19

    5.9 매크로의매크로의매크로의매크로의 수정수정수정수정 19 5.10 다른다른다른다른 매크로를매크로를매크로를매크로를 현재의현재의현재의현재의 매크로에매크로에매크로에매크로에 병합병합병합병합하기하기하기하기 20

    5.11 매크로의매크로의매크로의매크로의 삽입삽입삽입삽입 20 5.12 [Basic] 페이지에서의페이지에서의페이지에서의페이지에서의 매크로매크로매크로매크로 삽입삽입삽입삽입 20

    5.13 주석의주석의주석의주석의 삽입삽입삽입삽입 20 5.13 매크로의매크로의매크로의매크로의 실행실행실행실행 20

    5.14 매크로의매크로의매크로의매크로의 실행과실행과실행과실행과 실제실제실제실제 코드의코드의코드의코드의 실행실행실행실행 21 5.15 서브매크로를서브매크로를서브매크로를서브매크로를 열기열기열기열기 21

    5.16 매크로의매크로의매크로의매크로의 자기자기자기자기 호출호출호출호출 문제문제문제문제 21

  • Graphic LCD Simulator SOFTWARE 사용설명서사용설명서사용설명서사용설명서

    iv

    5.17 매크로의매크로의매크로의매크로의 내포내포내포내포 22 5.18 매크로매크로매크로매크로 파일파일파일파일 이름에이름에이름에이름에 대한대한대한대한 제한제한제한제한 22 6. 소스소스소스소스 생성기생성기생성기생성기 25 6.1 생성할생성할생성할생성할 소스의소스의소스의소스의 형식형식형식형식 25 6.2 소스소스소스소스 생성기의생성기의생성기의생성기의 사용법사용법사용법사용법 25 6.3 보이기보이기보이기보이기 페이지와페이지와페이지와페이지와 그리기그리기그리기그리기 페이지의페이지의페이지의페이지의 소스소스소스소스 생성생성생성생성 26 7. 시스템의시스템의시스템의시스템의 설정설정설정설정 27 7.1 통신통신통신통신 포트의포트의포트의포트의 설정설정설정설정 7.2 통신통신통신통신 속도의속도의속도의속도의 설정설정설정설정 7.3 Off-line 설정설정설정설정 7.4 LCD Model 설정설정설정설정 7.5 배경색의배경색의배경색의배경색의 설정설정설정설정 7.6 그리드그리드그리드그리드 모양모양모양모양 설정설정설정설정 7.7 비트맵비트맵비트맵비트맵 디렉터리디렉터리디렉터리디렉터리 7.8 모형모형모형모형 화면화면화면화면 저장하기저장하기저장하기저장하기 8. 선선선선 및및및및 도형도형도형도형 그리기그리기그리기그리기 8.1 선선선선 그리기그리기그리기그리기 8.2 그리기그리기그리기그리기 색의색의색의색의 선택선택선택선택 8.3 직사각형직사각형직사각형직사각형 그리기그리기그리기그리기 8.4 타원타원타원타원 그리기그리기그리기그리기 8.5 원원원원 그리기그리기그리기그리기 8.6 점점점점 찍기찍기찍기찍기 8.7 LCD의의의의 화면화면화면화면 지우기지우기지우기지우기 8.8 마우스마우스마우스마우스 사용에사용에사용에사용에 있어서의있어서의있어서의있어서의 주의점주의점주의점주의점 9. 비트맵비트맵비트맵비트맵 그래픽스그래픽스그래픽스그래픽스 9.1 Graphic LCD Designer 9.2 Graphic LCD Simulator의의의의 비트맵비트맵비트맵비트맵 그래픽스그래픽스그래픽스그래픽스 기능기능기능기능 9.3 응답응답응답응답 파일파일파일파일 9.4 비트맵비트맵비트맵비트맵 디렉터리디렉터리디렉터리디렉터리 9.5 비트맵의비트맵의비트맵의비트맵의 배치배치배치배치 9.6 비트맵비트맵비트맵비트맵 데이터의데이터의데이터의데이터의 다운로드다운로드다운로드다운로드 9.7 C 컴파일러를컴파일러를컴파일러를컴파일러를 만족시키기만족시키기만족시키기만족시키기 9.8 Graphic LCD Designer의의의의 스크린스크린스크린스크린 파일파일파일파일 실행하기실행하기실행하기실행하기 부록부록부록부록 A. 특수특수특수특수 문자문자문자문자 코드표코드표코드표코드표

  • 1. 개요개요개요개요

    1

    1. 개요개요개요개요

    이 사용설명서는 Graphic LCD Designer 모듈의 사용과 개발을 지원하기 위해서 만들어진 Graphic LCD Simulator 소프트웨어에 대하여 설명하고 있다.

    Graphic LCD Designer 모듈은 LCD 화면에 한글을 표시할 수 있게 하기 위하여 그래픽 LCD 모듈에 한글 출력 기능을 구현한 마이크로컨트롤러 시스템을 부착하여 임베디드 시스템에서 시리얼 통신을 통하여 보내주는 명령 및 데이터에 따라서 LCD 화면에 한글, 영숫자, 한자 및 특수 문자를 표현하는 장치이다. Graphic LCD Designer 모듈은 문자들을 화면에 표시할 때, 시스템 컨트롤러의 명령에 따라 지정된 위치에 지정된 글자체로, 지정된 색으로 출력한다.

    좀 더 고급형의 Graphic LCD Designer 모듈은 한글 등 문자 LCD에서는 표시할 수 없는 문자들을 표현하는 외에 선이나 도형을 그리는 기능을 가지고 있다.

    또한 이 기능에 더하여 Graphic LCD Designer에서 디자인하고 변환한 비트맵 데이터를 다운로드 하여 임베디드 시스템에서 사용할 수 있게 하는 기능을 가진 Graphic LCD Designer 모듈도 있다.

    Graphic LCD Designer 모듈은 자체적으로 MCU를 내장하고 있어서 전원을 투입하기만 하면, 바로 시스템 컨트롤러에서 사용할 수 있는 상태가 되며, 시스템 컨트롤러는 Graphic LCD Designer 모듈이 화면 표시와 관련하여 하여야 할 일을 명령어라고 하는 형식으로 시리얼 통신을 통하여 보내 주기만 하면 된다.

    이 과정이 전혀 어려운 것은 아니지만, 어떤 시스템이든 사용하는 과정에서 약간의 번거로움은 있을 것이다. Graphic LCD Simulator는 Graphic LCD Designer 모듈을 사용하는 시스템의 개발을 지원하기 위하여 다음과 같은 여러 기능으로 이러한 번거로움을 해소하고, 나아가서 프로그램 개발을 자동화할 수 있도록 도와 준다.

    � 모형 화면이라고 하는, Graphic LCD Designer 모듈의 화면과 똑같이 생긴 대화형 화면(interactive screen)을 가지고 있어서 Graphic LCD Designer 모듈을 가지고 있지 않더라도 Graphic LCD Designer 모듈에서 출력되는 화면과 똑 같은 화면을 PC 화면상에서 구현할 수 있다.

    � 실제 Graphic LCD Designer 모듈을 PC의 통신 포트에 연결하여 동작하는 것을 실험할 수 있다.

    � Graphic LCD Designer 모듈은 내부에 글자체 ROM을 가지고 있어서 한글, 영숫자, 한자 및

    특수 문자를 표현할 수 있지만, 시스템 컨트롤러에서 보내 주는 16×16 크기의 작은 그래픽을 문자처럼 LCD 화면에 출력하는 기능을 가지고 있다. Graphic LCD Simulator는 이 작은 그래픽을 디자인하기 위한 Graphic designer를 포함하고 있다.

    � Graphic LCD Simulator는 PC 화면상에서 행한 모의 화면을 통하여 한 모의 실험 및 Graphic LCD Designer 모듈을 연결하여 행한 동작 실험의 과정을 기록하는 매크로 기능을 가지고 있어서 모든 실험 절차를 저장하였다가 다시 실행하여 볼 수 있다.

    � 소스 생성기(source generator)를 포함하고 있어서 실험 과정 및 저장한 실험 결과를 자동으로 임베디드 시스템에서 바로 사용할 수 있는 C 소스 코드로 변환해 준다. 이 기능은 시스템 개발의 생산성을 크게 향상시켜 준다. 소스 생성기는 또한 Graphic LCD Simulator에서 디자인 한 작은 그래픽을 데이터 소스로 변환하여 소스 코드에 포함시켜 준다.

    � 선 및 도형 그리기 기능을 지원하기 위한 대화형 디자인 기능이 제공되므로, Graphic LCD Designer 모듈의 화면의 좌표를 일일이 기억하고 추적하고 기록하지 않더라도 화면의 디자인이 가능하고, 매크로 기능을 사용하면 이렇게 디자인되는 화면은 모두 기록하여 저장할 수 있다. 또한 기록하여 저장이 된 내용은 소스 생성기를 사용하여 곧바로 임베디드 시스템에서 사용할 수 있는 C 소스 코드로 변환할 수 있다.

    � Graphic LCD Simulator는 Graphic LCD Designer에서 디자인한 화면에 사용하기 위한 비트맵 데이터를 한글 LCD모듈에 다운로드 하는 기능을 가지고 있다. 일단 이 비트맵 데이터를 다운로드 하고, Graphic LCD Designer에서 만들어 주는 일종의 교차 참조 파일인 응답파일을 읽어 오고 나면, Graphic LCD Simulator는 Graphic LCD Designer 모듈과 동기하여 Graphic LCD Designer에서 디자인하면서 사용하였던 비트맵 파일들을 모의 화면상에 표시하고 같은 비트맵 데이터를 Graphic LCD Designer 모듈에 표시하게 할 수 있다.

    � Graphic LCD Simulator는 Graphic LCD Designer에서 디자인한 화면의 데이터를 직접 읽어 들여서 모형 화면 및 Graphic LCD Designer 모듈에 표시하는 기능을 가지고 있다. 이 기능을 이용하면 임베디드 시스템의 하드웨어를 만들기 전이라도 Graphic LCD Designer에서 디자인한 화면의 내용을 Graphic LCD Designer 모듈에 표현하여 봄으로써 그 디자인 결과를 더욱 빠르게 검증하여 볼 수 있다.

    Graphic LCD Simulator 외에 Graphic LCD Designer

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    2

    도 디자인한 화면 정보에서 비트맵 파일들을 Graphic LCD Designer 모듈에서 사용하기 위한 비트맵 데이터로 변환하고, 교차 참조를 위한 응답 파일과 임베디드 시스템의 프로그램에서 사용하기 위한 교차 참조 소스를 생성할 뿐만 아니라 디자인한 화면을 Graphic LCD Designer 모듈에 표시하기 위한 소스를 생성해 주는 기능을 가지고 있다. 사실 Graphic LCD Designer의 소스 생성 기능은 Graphic LCD Simulator의 소스 생성 기능에 비해서 더욱 강력하고 복잡한 기능을 수행한다. 그러나, Graphic LCD Designer가 비트맵 파일 등을 이용하여 전체 화면 또는 화면의 일부를 디자인하고 그 결과를 소스로 변환해 주는 기능을 가지고 있는 반면, Graphic LCD Simulator는 Graphic LCD Designer에서 디자인한 화면을 모형화면 및 Graphic LCD Designer 모듈에 표시하는 기능 외에도 비트맵 데이터 하나 단위로 실시간으로 모형 화면과 실제 한글 LCD 화면에 표시하면서 화면을 디자인할 수 있기 때문에 두 소프트웨어의 기능은 상호 보완적이라고 할 수 있다.

    � 다중 페이지 기능을 지원하는 Graphic LCD Designer 모듈을 통신 포트에 연결하여 개발할 때, Graphic LCD Designer 모듈에서 그리기 페이지와 보이기 페이지를 다르게 선택하여 그리기 작업 과정이 보이지 않는 경우에도 Graphic LCD Simulator는 그리기 페이지를 화면에 표시하여 작업이 진행되는 모양을 관찰할 수 있다.

    Graphic LCD Designer 모듈은 화면 크기가 아주 작은 몇몇 모델을 제외하고는 LCD 화면의 페이지를 두 개까지 보여 주는 다중 페이지 기능을 지원하고 있다. 이 두 페이지를 서로 전환하는 기능에는 두 가지가 있는데, 하나는 실제 출력이 이루어지는 페이지를 선택하는 그리기 페이지 선택기능이고 다른 하나는 화면의 내용을 사용자에게 보여 주는 보이기 페이지 선택 기능이다. 다중 페이지 기능은 보이기 페이지와 그리기 페이지를 다르게 한 다음 그리기 페이지에서의 그리는 작업이 완료된 다음 보이기 페이지를 전환하여 그리는 작업이 이루어지는 과정에 있는 화면 변화를 사용자에게 감추기 위해 흔히 사용된다. Graphic LCD Designer 모듈은 항상 보이기 페이지만을 보여 주지만, Graphic LCD Simulator는 항상 그리기 페이지만을 화면에 보여 주기 때문에 두 페이지가 다른 경우 Graphic LCD Designer 모듈에서는 보이기 페이지를 Graphic LCD Simulator에서는 그리기 페이지를 보면서 작업의 디버깅을 쉽게 할 수 있다.

    � Graphic LCD Simulator는 Graphic LCD Designer 모듈에 표시되는 것과 정확히 똑 같은 화면을 PC 화면에 구현하여 주므로, 시스템의 개발과 직접적인 관련이 있는 것은 아니지만, 개발한 시

    스템과 관련한 문서를 작성할 때 LCD 화면의 모양을 설명하면서 그 화면을 카메라로 찍는다거나 하지 않고도 Graphic LCD Simulator의 모형화면을 오려서 사용할 수 있다.

    이 기능은 Graphic LCD Designer 모듈을 사용하여 임베디드 시스템을 개발하는 것을 직접 도와 주는 기능은 아니지만 Graphic LCD Simulator의 개발자들도 이 프로그램을 사용하여 시스템을 개발하면서 타깃 시스템의 화면을 타깃 시스템이 개발되기도 전에 Graphic LCD Simulator의 화면에서 먼저 구현하여 이를 제품 관련 문서를 작성할 때, 심지어는 견적 작업을 할 때도 사용하며 즐긴 경험이 있다.

    Graphic LCD Simulator의 모형 화면을 다른 애플리케이션에서 사용하기 위해서는 화면 복사 기능을 이용해서 Graphic LCD Simulator의 화면을 복사한 다음 그래픽 프로그램에서 모형 화면만 오려서 사용할 수도 있겠지만, Graphic LCD Simulator는 개발자들이 모형 화면을 다른 애플리케이션에서 사용한 이런 경험 덕택에 모형 화면만을 비트맵 파일로 저장하는 기능을 가지고 있다. 이 기능은 뒤에 설명하겠지만, Graphic LCD Simulator의 [Settings] 페이지

    에 버튼으로 구현되어 있다.

  • 2. 시작하기시작하기시작하기시작하기

    3

    2. 시작하기시작하기시작하기시작하기

    Graphic LCD Simulator 프로그램을 실행하면 다음과 같은 Graphic LCD Simulator 화면이 나타난다. 이 화면 왼쪽의 그리드가 표시된 직사각형 부분은 사용하고자 하는 LCD 화면의 모형 화면(simulation)이다. 화면 오른쪽에 있는 명령어 버튼들을 이용해서 LCD를 동작하게 하기 위한 명령들을 수행할 수 있다. 이 프로그램의 이름이 Graphic LCD Simulator라고 붙여진 것도 이

    프로그램이 바로 이 모형 화면을 가지고 있어서 명령들을 실행하였을 때, 실제 LCD 화면에 나타나게 되는 화면이 이 모형 화면에 그대로 나타나게 할 수 있기 때문이다. Graphic LCD Designer 모듈이 RS232C 포트를 통해서 사용자의 컴퓨터에 올바로 연결되어 있고 올바로 설정되어 있으면, 명령어 버튼들을 이용해서 어떤 명령을 수행하게 하면 그 결과가 모형 화면과 실제 LCD 화면에 똑같이 나타난다.

    이 프로그램 화면의 오른쪽에는 여러 가지 명령이나 설정을 수행하기 위한 기능들을 포함한 페이지 선택기가 있는데, 페이지 선택기는 다음의 그림에 보인 것과 같은 다섯 개의 페이지로 구성되어 있다.

    � Basic이라고 표시된 페이지는 Graphic LCD Designer 모듈 동작과 관련하여 기본적인 명령들을 수행하기 위한 기능들이 포함되어 있다.

    � Line graphics라고 표시된 페이지는 선을 그린다거나, 기본적인 기하학적 도형을 그리기 위한 기능들이 포함되어 있다.

    � Bitmap graphics라고 표시된 페이지는 Graphic LCD Designer에서 편집한 내용을 사용하기 위한 기능들을 포함하고 있다. Graphic LCD Designer 및 그 사용에 관련한 내용은 9.1 Graphic LCD Designer에서 설명한다.

    � Macro라고 표시된 페이지는 이 LCD Simulator

    프로그램의 가장 큰 특징의 하나인 Macro 기록 기능을 이용하여 기록된 Macro의 편집 등의 기능과 Macro를 이용한 프로그램 소스 생성기 기능을 포함하고 있다.

    � 마지막으로 Settings라고 표시된 페이지는 이 프로그램과 Graphic LCD Designer 모듈의 통신에 대한 설정, LCD 모델의 선택 및 기타 프로그램 구성에 관한 설정들을 포함하고 있다.

    아래의 각 절들에서 각각의 탭에 있는 기능들에 대하여 설명하기로 한다. 개별 기능들이 완전히 어떤 독립적인 것이 아니라, 제법 상호 연관 관계를 가지는 까닭에 먼저 기본적인 기능의 사용에 대하여 맛보기를 하는 것에서부터 시작하는 것이 좋겠다.

    2.1 Graphic LCD Simulator 기능을기능을기능을기능을 간단하게간단하게간단하게간단하게 살펴살펴살펴살펴 보기보기보기보기

    이 프로그램을 처음 실행하면 위에서 보인 것과 같은 모양으로 나타난다. 이 프로그램에서 Graphic LCD Designer 모듈을 제어하기 위해서는 Graphic

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    4

    LCD Designer 모듈이 RS232C 포트(시리얼 포트)를 통해서 컴퓨터에 연결되어 있어야 한다. 먼저 이 프로그램의 사용 방법과 연결하는 방법을 익히기 위하여 Graphic LCD Designer 모듈이 연결되지 않은 상태에서 프로그램을 사용해 보기로 하자. 물론 Graphic LCD Designer 모듈이 컴퓨터에 연결되어 있다고 해서 그 모듈이 정상적으로 연결되어 있기만 하다면 손상된다거나 하는 일은 전혀 일어나지 않는다. 원한다면, 좀 성급하기는 하지만 Graphic LCD Designer 모듈을 연결하여 어떻게 동작하는가 살펴 본다고 하더라도 전혀 문제는 없을 것이다. 다만 그 경우 이 프로그램을 처음 사용하는 사용자라면, 먼저 7. 시스템의시스템의시스템의시스템의 설정설정설정설정 부분을 먼저 읽고 시작하는 것이 좋을 것이다.

    먼저 마우스의 버튼을 누르지 않은 상태에서 마우스를 끌어, 화면 왼쪽의 모형 화면 위를 움직여 보기로 하자. 그러면, 화면 아래의 상태 표시줄의 가

    장 왼쪽에 하는 식의 표시가 나타날 것이다. 이 표시는 현재 모형 화면상에서 마우스의 포인터가 가리키는 위치의 좌표를 나타낸다. 이 좌표는 문장을 출력할 때 사용되는 좌표이다.

    이제 마우스의 왼쪽 버튼을 눌러 보자. 그러면, 현재의 좌표 값이 오른쪽에 Cursor position이라고 하는 상자 안에 있는 X Pos: 및 Y Pos: 상자에 나타나게 될 것이다. 모형 화면 위에서 마우스를 움직여서 원하는 위치의 좌표를 선택한 다음, 그 위치에서 마우스의 왼쪽 버튼을 누르기(클릭)만 하는 것으로 사실 우리는 Graphic LCD Designer 모듈에 대한 간단한 명령 하나를 실행한 것이 된다. 이 명령은 커서의 위치 선택이라고 하는 명령이며, 이 명령이 실행되고 나면, 다음에 문장을 출력할 때, 그 출력하는 문장이 이 위치에서부터 출력된다. 이제 그 위치에 문장을 출력해 보기로 하자. 문장을 출력할 위치가 마음에 들지 않는다면, 언제라도 다시 마우스를 끌어 움직여 원하는 위치를 선택한 다음 클릭하면 될 것이다.

    한글 LCD 화면에 문장을 출력하기 위해서는

    버튼을 누르면 된다. 이 버튼을 누르면, 다음과 같은 문장 입력기 화면이 나타난다. 이 문장 입력기의 사용 방법에 대해서는 뒤에서 자세히 설명하겠지만, 여기서는 일단 커서가 나타난 문장 입

    력 줄에 적당한 문자들을 타자한 다음 버튼을 누르거나 [Enter] 키를 입력해 보기로 한다. 그러면 왼쪽의 모형 화면에 문장 입력기에서 입력하였던 문장이 나타나고, Cursor position이라고 하는 상자 안에 있는 X Pos: 및 Y Pos:의 값도 변화할 것이다.

    Graphic LCD Simulator나 Graphic LCD Designer 모듈은 문장을 출력하면 현재 지정되어 있는 위치에 출력되는 문장을 표시하고 커서의 위치를 문장의 길이만큼 오른쪽으로 옮긴다. 이제 다음 번 문장을 출력하면, 그 문장은 앞서 출력한 문장의 바로 오른쪽에 출력된다. Graphic LCD Designer 모듈은 바로 이런 직관적인 방법으로 동작한다. 다시 다른 위치에 원하는 문장을 표시하고자 하는 경우에는 다시 마우스를 끌어 움직여 원하는 위치를 선택한 다음 클릭하여 문장을 출력할 위치를 정한 다음에 문장 출력 기능을 이용하여 문장을 출력하기만 하면 된다.

    이제 버튼을 눌러 보기로 한다. 화면이 깨끗이 지워지고 Cursor position이라고 하는 상자 안에 있는 X Pos: 및 Y Pos:의 값은 모두 영(0)이 된다.

    이 상태에서 버튼을 눌러 문장 입력기를

    열어서 표시할 문장을 입력한 다음 버튼을 누르면 그 문장은 화면의 좌측 상단에 표시될 것이다.

    다시 버튼을 눌러 화면이 지워 보기로 하자. Font라고 하는 상자에서 [명조체 반자]를 선택해 본다. 그런 다음 문장 입력기를 열어서 한글 문자

    를 포함하는 문장을 입력한 다음 버튼을 눌러 보자. 그러면 한글의 폭이 앞서의 절반으로 표시되는 것을 볼 수 있다. Font 상자에서는 표시할 문자의 글자체를 선택할 수 있다. 글자체의 선택과 관련하여 자세한 사항은 3.4 글자체글자체글자체글자체의의의의 선택선택선택선택에서 설명된다.

    이제 Graphic LCD Simulator의 가장 특징적인 기능 중의 하나인 매크로 기록에 대해서 살펴 보기로 하자. 우리가 흔히 취하게 되는 가장 간편한 방법으로 가기로 하자. 그 방법이라고 하는 것이, “해 보고 이해하기”라고 하는 것이다. 일단 해 보기로 하자. 모형 화

    면의 오른쪽 아래 부분의 오른쪽에 보면 라고 하는 버튼이 있을 것이다. 이 버튼을 눌러 본다.

    그러면 그 버튼의 모양이 로 바뀌게 될 것이다. 다시 그 버튼을 눌러 보면, 버튼의 모양이 다

    시 로 되돌아올 것이다. 이 버튼은 버튼의 그림이 일 때는 이 버튼을 누르면 매크로 기록을 시작하게 된다는 것을 의미하고, 버튼의 그림이 일 때는 이 버튼을 누르면 매크로 기록을 멈

  • 2. 시작하기시작하기시작하기시작하기

    5

    추게 된다는 것을 의미한다. 녹음기나 VCR의 플레이 버튼과 정지 버튼을 상상하면 이해가 쉬울 것이다.

    시작한다는 것과 멈춘다는 것의 의미는 이해를 하였는데, 매크로 기록이라고 하는 것이 무엇인지 궁금할 수도 있을 것이다. 이제 그것이 무엇인지 이해하기 위해

    서, 이 버튼이 상태에 있으면 한 번 눌러

    서 의 상태가 되게 만들고, 의 상태에 있으면 그 상태에서 다음으로 진행해 보기로

    한다. 버튼의 상태가 로 되어 있는가 다시 한 번 확인하기로 하자.

    이제 프로그램 화면 왼쪽에 있는 모형 화면 위로 마우스를 이동한 다음 어떤 점을 클릭해 보자. 이 기능이 어떤 기능인지는 앞서 설명이 되었으리라고 본다. 또는 앞서 설명하였던 기능들을 여기서 다시 한 번 재현해 본다. 모형 화면에 나타나는 것이든 아닌 것이든, 어떤 일을 한 대로 여러 가지 일이 벌

    어졌다는 것은 알고 있을 것이다. 이제,

    버튼을 눌러서 버튼의 모양이 와 같이 되게 하자.

    이제 화면의 오른쪽 위를 보자. 페이지 선택기 탭 중에 [Macro]라고 표시된 것이 있다. 이 탭을 눌러 본다. 그러면 페이지 선택기는 다음에 보인 것과 같은 내용의 탭을 보여 줄 것이다. 다만 차이점이 있다면, 아래의 그림에 나타난 목록에는 아무 내용도 없는데 반해서 사용자 프로그램의 목록에는 뭔가가 들어 있을 것이라는 것이다. 이 목록에 있는 내용이 바로 사용자

    가 버튼을 눌러서 가 되게 한 다음, Graphic LCD Designer 모듈, 또는 모형 화면에 한 모든 행위를 기록한 것이다.1

    여기서 버튼을 눌러 보기로 하자. 그러면, Graphic LCD Simulator 뒤에 Source Viewer라고 하는 화면이 열리면서 C 언어로 된 프로그램 소스 코드를 보여 줄 것이다. 이 프로그램 소스를 Graphic LCD Designer 모듈을 디스플레이 장치로 사용하게 될 임베디드 시스템에서 사용하게 될 프로그램에 오려 붙여서 컴파일하면, Graphic LCD Simulator에서 모형 화면에 만들어 본 화면을 Graphic LCD Designer 모듈을 디스플레이 장치로 사용하게 될 임베디드 시스템에서 그대로 구현할 수 있다. 매크로의 사용과 편집에 관한 사항은 5.

    1 다행히도, 이 프로그램의 기록 기능은 사용자가 Graphic LCD

    Designer 모듈, 또는 모형 화면에 한 행위만 기록할 수 있다.

    버튼을 눌러서, 가 되게 한 다음, 커피를 마신다거나 손톱을 깎는다거나 하더라도 그런 행위들은 기록하지 못한다. 모든 행위를 기록한다는 수사법을 그리 민감하게 받아들일 필요는 없을 것이다.

    매크로의매크로의매크로의매크로의 사용과사용과사용과사용과 편집편집편집편집에서 자세하게 다루게 될 것이다.

    이제 Graphic LCD Simulator의 사용과 관련하여 대략적인 감은 잡았을 것이라고 여겨진다. 아래에서 Graphic LCD Simulator의 기능에 대해서 좀 더 자세하게 살펴보기로 한다.

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    6

    [This page is left blank intentionally.]

  • 77

    3. 기본적인기본적인기본적인기본적인 기능기능기능기능

    Graphic LCD Simulator의 화면 오른쪽의 페이지 선택기에서 [Basic] 탭을 선택하여 기본적인 기능들을 제어하기 위한 도구들이 나타나게 할 수 있다. 이 탭의 이름이 [Basic]인 것은 기본적인 기능들을 모아 두었다는 뜻이지 컴퓨터 프로그래밍 언어 BASIC과는 전혀 관련이 없다.

    이 탭을 선택하면 다음과 같은 내용이 나타난다. 아래에서 이 탭에 표시된 도구들 각각에 대하여 설명하기로 한다.

    3.1 LCD의의의의 초기화초기화초기화초기화

    한글 LCD모듈의 모든 화면을 지우고 동작과 관련한 내부 변수들을 초기화한다. 초기화되는 내부 변수들은 다음과 같다. 각 용어들의 의미는 뒤에 설명된다. 여기서는 일단 단순히 그런 값들이 선택된다는 것만 이해하고 있어도 되겠다.

    � Graphic LCD Designer 모듈의 모든 화면을 지운다.

    � Cursor position: X=0, Y=0, 즉 화면의 좌측 상단이 선택된다.

    � Font: 명조체 전자가 선택된다. � Font face: Normal face가 선택된다.

    � Character width: Normal width가 선택된다. � Put mode: Normal put이 선택된다. � 보이기 페이지: Page 0이 선택된다. � 그리기 페이지: Page 0이 선택된다. � 한글 코드: 완성형 코드가 선택된다.

    3.2 LCD의의의의 화면화면화면화면 지지지지우기우기우기우기

    Graphic LCD Designer 모듈의 현재의 그리기 페이지의 화면을 지우고, 커서의 위치를 X=0, Y=0, 즉 화면의 좌측 상단으로 이동한다. 다중 페이지 기능을 지원하는 대부분의 모델에서 현재의 그리기 페이지와 다른 페이지는 지워지지 않는다. 그리기 페이지와 보이기 페이지가 다르게 되어 있는 경우, Graphic LCD Designer 모듈에서는 그리기 페이지가 지워진 것이 보이지 않는다.

    반면 Graphic LCD Simulator는 항상 그리기 페이지만을 보여 주기 때문에, 이 명령을 실행하면 Graphic LCD Simulator의 모형 화면은 지워진다. 이와 같이 Graphic LCD Simulator는 Graphic LCD Designer 모듈에서 실제 일어나고 있지만 보이지 않는 일을 보여 주기 때문에 Graphic LCD Designer 모듈을 이용한 시스템의 개발에 Graphic LCD Simulator를 사용하면 대단히 효과적이다.

    3.3 LCD에에에에 문문문문장을장을장을장을 출력하기출력하기출력하기출력하기

    버튼을 누르면 다음과 같은 문장 입력기 화면이 나타난다. 이 문장 입력기의 문장 입력 줄에

    출력하고자 하는 문장을 입력한 다음, 버튼을 누르면 현재의 커서 위치에 입력한 문장이 출

    력된다. 버튼을 누르면, 입력이 취소된다.

    오른쪽에 있는 버튼은 앞서 문장 입력기에서 입력한 문자의 출력을 반복하는 버튼이다. 화면의 원하는 위치를, 필요하다면, 클릭하여 문장을 출력할 위치를 지정한 다음, 이 버튼을 누르면 직전에 출력한 것과 같은 문장이 반복되어 출력된다.

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    8

    3.3.1 문장문장문장문장 입력기입력기입력기입력기

    문장 입력 줄에는 키보드에서 입력할 수 있는 영숫자, 한글, 한자 등을 입력할 수 있다. 문장 입력 줄의 맨 오른쪽에 보면 버튼이 붙어 있는데, 이 버튼을 누르면, 지금까지 입력하였던 문장들의 목록이 나타난다. 새로 입력하려고 하는 문장이나 일부가 이 목록에 있는 경우 목록에서 문장을 선택하여 입력 줄로 옮긴 다음 수정하거나 추가하여 필요한 문장을 만들 수 있다. 이 문장 입력 줄은 오려 붙이기 기능을 지원하므로, 다른 응용 프로그램의 에디터에서 필요한 문장을 오리거나 복사한 다음, 문장 입력 줄에 오려 붙여서 출력할 수도 있다.

    과거에 입력하였던 문장의 목록은 이 프로그램을 종료한 다음 다시 실행하여도 없어지지 않는다. Graphic LCD Simulator는 이 문장의 목록은 Graphic LCD Simulator의 실행 파일과 같은 폴더에 실행 파일의 이름(hlcdsim.exe)과 파일 이름은 같고 파일 확장자만 .ini로 바꾼 다른 파일에 저장하였다가 프로그램을 새로 시작할 때 다시 읽어 온다. 이 파일을 지우면 과거에 입력하였던 문장의 목록을 지울 수 있다.

    3.3.2 특수특수특수특수 문자문자문자문자 입력기입력기입력기입력기

    키보드에서 입력할 수 없는 특수 문자를 입력하기

    위해서는 버튼을 누르면 된다. 이 버튼을 누르면 다음의 그림과 같은 특수 문자 입력기가 열린다. 이 입력기는 KS5601의 A1-AC 사이의 코드표를 보여 준다. 각 코드표는 해당 탭에 위치하고 있다. 필요한 탭을 선택한 다음 해당 탭의 표에서 원

    하는 문자를 클릭한 다음, 버튼을 누르거나 해당 문자를 더블 클릭하면 그 문자가 문자열 입력기의 커서 위치에 삽입된다. 다만 표의 해당 셀이 비어 있는 경우, 즉 그 코드에 특수 문자가 할당되어 있지 않은 경우에는 문자열 입력기에 어떤 문자

    도 삽입되지 않는다. 버튼을 누르면, 특수 문자 입력기는 아무 일도 하지 않고 다시 문장 입력기로 되돌아간다.

    현재의 탭에 원하는 문자가 없는 경우, 마우스를 사용해서 원하는 탭을 선택할 수 있다. 또는 [Alt]+1 에서 [Alt]+9 및 [Alt]+A에서 [Alt]+C까지의 키를 눌러 원하는 탭을 선택할 수 있다.

    특수 문자 입력기에서 제공하는 문자 코드는 부록부록부록부록 A. 특수특수특수특수 문자문자문자문자 코드표코드표코드표코드표에 나타내었다.

    3.4 글자체글자체글자체글자체의의의의 선택선택선택선택

    문장을 출력할 때 사용할 글자체는 Font라는 이름을 가진 상자에서 선택할 수 있다. 이 상자에는 다섯 가지의 선택할 수 있는 항목들이 나열되어 있는데, 명조체라고 부르는 글자체와 고딕체라고 부르는 글자체에 대해서는 이미 잘 알려져 있으므로 설명이 필요하지 않을 것이라고 본다. Graphic LCD Designer 모듈에서 사용하는 모든 문자는 기본적으로 영문자는 8×16의 가로×세로 크기를 가지며, 그 외 한글, 한자, 특수 문자 및 graphic image는 16×16의 크기를 가진다. 이런 기본적인 크기를 가지는 문자를 전자라고 한다. 반자라고 하는 것은 Graphic LCD Designer 모듈에서는 한글에 대해서만 적용되는데, 이 문자들은 기본적인 문자 폭의 절반 크기의 특별한 문자 폭을 가진다. 이제 명조체 또는 고딕체라고 하는 글자체에다 글자의 폭에 대한 정보를 포함하기로 하면, 명조체 반자, 고딕체 반자, 명조체 전자 및 고딕체 전자라고 하는 항목들이 어떤 의미를 가지는가 하는 것이 자명해진다 할 것이다.

    이제 정리해 보기로 하자. 명조체 반자 및 고딕체 반자는 우리가 Graphic LCD Designer 모듈을 사용할 때 가장 중점적으로 관심을 가질 한글에만 적용되는 글자체이다. 영숫자, 한자 및 특수 문자에 대해서는 반자체가 지원되지 않는다.

    3.4.1 반자체에반자체에반자체에반자체에 대한대한대한대한 특별한특별한특별한특별한 설명설명설명설명

    반자체는 사실상 한글의 글자를 가로 방향으로 극도로 찌그러뜨린 글자체이기 때문에 이 글자체에다 굵은 글자체를 적용하려고 하면, 글자가 거의 검은색으로 뭉개져서 오히려 알아 보기 힘들게 된다. 그래서 반자체를 선택하였을 때에는 글자 두께를 굵은 체로 선택할 수 없도록 되어 있다. 즉, 반자체를 선택하였을 때 반자체로 표현되는 한글의 글자들에 있어서는 굵은 체를 사용할 수 없다.

    뒤에 설명하겠지만, Graphic LCD Designer 모듈은 문자 폭을 두 배로 선택하는 넓은 폭 문자 기능을

  • 5. 매크로의매크로의매크로의매크로의 사용과사용과사용과사용과 편집편집편집편집

    9

    제공하고 있다. 이 기능은 화면에 출력하는 글자들의 폭을 두 배로 늘여서 보여 주는 기능인데, 한글을 반자체로 출력하려고 하면서 넓은 폭 문자 기능을 선택하면 어떻게 될까? 넓은 폭 문자라고 하는 것이 문자들의 폭을 두 배로 늘여서 보여 주는 것인데, 굳이 가로 방향의 크기를 절반으로 줄인 글자체를 가로로 두 배 늘려서 보여 줄 필요가 없을 것이다. 그래서 Graphic LCD Designer 모듈은 사용자가 반자체를 선택한 상태에서 넓은 폭 문자를 선택하는 기능을 사용하면, 반자체 문자를 가로로 두 배 늘려서 보여 주는 대신, 전자체 문자를 보여 준다. Graphic LCD Designer 모듈이 보여 주는 반자체 문자는 단순히 전자체 문자를 절반으로 찌그러뜨린 문자가 아니라 좁은 화면 영역에 최대한 많은 문자를 비슷한 모양으로 보여 줄 수 있도록 만들어진 다른 글자체인 반면, 넓은 폭 문자 기능은 단순히 한 문자의 세로 한 줄 분량을 세로 두 줄에 걸쳐서 표현하는 방법이다. 그래서 반자체 문자 자체를 넓은 폭으로 보여 준다고 해서 그것이 전자체로 보이지는 않는다. 다만, 한글 LCD 내부의 문자 출력 기능에서 알아서 좀 더 나은 품위의 문자를 보여 주기 위하여, 반자체를 선택한 상태에서 넓은 폭 문자 출력 기능을 사용하면, 반자체 문자의 폭을 두 배로 늘려서 보여 주지 않고 일반 폭의 전자체 문자를 보여 주는 것이다. 반자체 문자를 사용하는 상태에서 넓은 폭 문자 기능을 사용하면, 굵은 글자체 선택을 반영하여 굵은 글자체가 선택되어 있으면, 전자 폭의 굵은 문자를 보여 준다.

    3.4.2 ASCII text font

    Graphic LCD Designer 모듈은 명조체 및 고딕체의 문자 외에 ASCII text font라고 하는 특별한 글자체를 지원한다. 이 글자체는 아주 오래 전에 PC를 사용하던 사용자들은 쉽게 짐작할 수 있는 글자체이다. 이 글자체는 예전의 저해상도 모니터에서 흔히 텍스트 화면이라고 부르는 화면에서 사용되던 글자체로 오늘날에도 저해상도 출력 장치에서는 의외로 많이 사용되고 있다. 많이 사용되는 이유 중 하나는 그 디자인이 단순하면서도 (처음 그 글자체의 설계자들이 생각했던 것처럼) 저해상도 출력 장치에서는 아주 훌륭한 식별성을 보인다는 것이다.

    뒤에 설명하게 되겠지만, Graphic LCD Designer 모듈은 한글을 출력하기만 하기 위한 장치로 설계된 것은 아니다. 오히려 Graphic LCD Designer 모듈은 Graphic LCD Designer의 기능의 도움을 받으면, 단순히 한글을 그래픽 LCD에 출력하는 장치가 아니라 다양한 비트맵 데이터를 출력하는 장치가 된다.2

    2 이 논의는 비트맵 출력 기능이 있는 Graphic LCD

    Designer 모듈에 대해서만 적용된다. 자세한 내용에 대해서는 7. 시스템의시스템의시스템의시스템의 설정설정설정설정에서 설명한다.

    컴퓨터를 이용하여 한글 문자를 포함한 그래픽을 디자인하여 LCD 화면상에 배치하고 단순한 영문자나 숫자의 표시의 경우 이 글자체를 선택하여 출력하면, 오히려 화면이 더 고전적으로 보이게 해 주는 효과를 얻을 수도 있다.

    ASCII text font를 선택하면, 굵은 체의 선택이나 넓은 글자체의 선택이 완전히 무효화된다. 이 글자체로는 오로지 8×16 크기의 ASCII 문자만 출력할 수 있다. 그러나, 굵은 체의 선택이나 넓은 글자체의 선택에 대한 정보는 Graphic LCD Designer 모듈 내부에 고스란히 저장되어 있기 때문에 이 글자체로 문장을 출력한 다음 다른 글자체를 사용하면, 그러한 사항에 대한 것을 다시 지정하지 않더라도 온전히 사용할 수 있다.

    3.5 굵은굵은굵은굵은 체의체의체의체의 선택선택선택선택

    Graphic LCD Designer 모듈은 화면에 표시하는 문자의 글자체를 가는 체와 굵은 체 두 가지 종류로 표시할 수 있다. 가는 체와 굵은 체의 차이는 아래의 그림을 보면 바로 알 수 있을 것이다.

    가는 체를 사용하기 위해서는 Font face 상자에서 Normal face를 선택하면 되고, 굵은 체는 Bold face를 선택하여 사용하면 된다.

    글자체의 두께는 한글 전자체에 대해서만 적용된다. 즉 명조체 전자나 고딕체 전자를 선택하였을 때 한글 글자체 및 영숫자 글자체에 대해서만 적용된다. 한글 반자체를 선택하였을 때 화면에 표시되는 반자체의 한글에 대해서는 굵은 체의 선택이 적용되지 않는다.

    앞서 설명한 것과 같이 한글 반자체를 선택하였을 때, 글자의 너비를 넓은 폭으로 함께 선택하면, Graphic LCD Designer 모듈은 한글 반자체의 글자를 넓게 벌려서 보여 주지 않고, 한글 전자체의 글자를 보여 준다. 이 경우에는 굵은 체가 선택되어 있으면, 넓은 폭의 한글 반자체 글자 대신에 화면에 나오게 되는 한글 전자체의 글자는 굵은 체로 표시된다.

    ASCII 코드 상에 있는 영숫자들의 명조체와 고딕체에 대해서도 굵은 체의 선택이 적용된다.

    Graphic LCD Designer 모듈에서 표시가 가능한 한자, 특수 문자에 대해서는 굵은 체의 선택이 적용되지 않는다.

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    10

    Font 상자에서 ASCII text font를 선택하였을 때 화면에 표시되는 영문 텍스트 체에 대해서도 굵은 체의 선택이 적용되지 않는다. 사실, 이 글자체는 그 자체로 제법 굵은 체로 표시가 되는 것이기 때문에 어쩌면 가는 체가 적용되지 않는다고 하는 것이 더 올바른 표현일 수도 있겠다.

    3.6 넓은넓은넓은넓은 글자체의글자체의글자체의글자체의 선택선택선택선택

    Graphic LCD Designer 모듈은 화면에 표시하는 문자의 글자를 보통 너비와 보통 너비의 두 배가 되는 넓은 글자체로 표시하는 기능이 있다. 보통 너비와 넓은 너비의 글자체의 차이를 아래의 그림에 예시한다.

    표시되는 글자의 너비를 보통 너비와 넓은 너비 중에서 선택할 수 있는데, 이 선택은 Character width 상자에서 너비를 선택하면 된다. 이 상자에서 Normal width를 선택하면 보통 너비의 글자체가 선택되고, Double width를 선택하면, 넓은 글자체가 선택된다.

    넓은 글자체의 선택은 명조체 한글, 고딕체 한글, 명조체 영숫자 및 고딕체 영숫자에 모두 적용된다. 한자 및 특수 문자에 대해서도 넓은 글자체의 선택은 적용된다. 또한 Graphic designer에서 만들어서 출력하는 16×16의 크기의 작은 그래픽에 대해서도 적용된다.

    한글 반자체를 사용할 때, 넓은 글자체를 선택하면 한글 LCD은 한글 반자체의 글자를 넓게 벌려서 표시하지 않고, 한글 전자체의 글자를 표시한다.

    Font 상자에서 ASCII text font를 선택하였을 때 화면에 표시되는 영문 텍스트 체에 대해서는 넓은 글자체의 선택이 적용되지 않는다.

    3.7 흑백흑백흑백흑백 반전반전반전반전 기능기능기능기능

    흑백 반전이라고 하는 것은 표시되는 글자의 색과 바탕의 색을 뒤집어서 보여 주는 기능이다. 이 기능을 이용한 예를 아래의 그림에 나타낸다. 흔히 흑백이 반전된 문자를 역상 문자라고 부르는데, 여기서도 그렇게 부르기로 하자.

    역상 문자 표시 기능은 Put mode 상자에서 선택한다. 흑백이 반전되지 않은 보통 문자를 표시할 때는 Put mode를 Normal로 선택하고, 역상 문자를 표시하려고 할 때는 Put mode를 Inverse로 선택하면 된다.

    역상 표시의 선택은 글자체, 글자의 굵기 및 너비와 상관 없이 항상 적용된다. 역상 표시는 Graphic designer에서 만들어서 출력하는 16×16의 크기의 작은 그래픽에 대해서도 적용된다. Font 상자에서 ASCII text font를 선택하였을 때 화면에 표시되는 영문 텍스트 체에 대해서도 역상 표시의 선택은 적용된다.

    3.8 작은작은작은작은 그래픽을그래픽을그래픽을그래픽을 출력하기출력하기출력하기출력하기

    Graphic LCD Simulator에서 버튼을 클릭하면 Graphic designer가 열린다. Graphic designer에서는 16×16의 크기의 작은 그래픽을 디자인하여 한글 LCD에 출력할 수 있다. Graphic designer에서 디자인한 작은 그래픽은 사용자가 임의로 만들어 표현할 수 있는 내용이라는 점만을 제외하면, 특수 문자나 한자처럼 역상이나 넓은 글자체 선택에 적용을 받기 때문에 문자처럼 생각하여도 될 것이다. Graphic designer의 사용에 대해서는 4. Graphic designer에서 자세하게 다루기로 한다.

    오른쪽의 버튼은 앞서 Graphic designer에서 선택하여 출력한 작은 그래픽을 반복하여 화면에 출력하기 위한 버튼이다. 이 버튼을 누르면 직전에 출력하였던 작은 그래픽이 현재의 커서 위치에 출력된다. 필요하다면, 화면상의 위치를 클릭하여 커서의 위치를 선택한 다음 이 버튼을 누르면 그 위치에 작은 그래픽이 출력된다.

    3.9 매크로의매크로의매크로의매크로의 삽입삽입삽입삽입과과과과 기록기록기록기록

    이 버튼들의 기능은 Graphic LCD Simulator의 중요한 특징 중 하나인 매크로의 사용과 관련되어 있으므로, 아래에서 매크로에 대해서 설명하면서 자세히 다루기로 한다.

    3.10 보이기보이기보이기보이기 페이지페이지페이지페이지와와와와 그리기그리기그리기그리기 페이지페이지페이지페이지3

    LCD든 다른 디스플레이 장치든 한 화면에 보여 줄 수 있는 분량을 흔히 페이지라고 부른다. 어떤 디스플레이 장치는 오직 하나의 페이지만 가지고 있고, 3 Graphic LCD Designer 모듈의 일부 모델에서는 이 기능

    이 지원되지 않는다. 이 기능이 지원되지 않는 모델에서는 이 절에서 설명하는 내용은 적용되지 않는다.

  • 5. 매크로의매크로의매크로의매크로의 사용과사용과사용과사용과 편집편집편집편집

    11

    또 어떤 디스플레이 장치는 여러 개의 페이지를 가지고 있을 수 있어서 사용자의 명령에 따라 이 페이지 저 페이지를 바꿔가면서 보여 줄 수도 있다. 그래픽 디스플레이 장치가 한 화면 이상의 페이지를 가진다고 하는 것은 약간 특별한 의미를 가진다. 어떤 장치라도 한 화면에 그림이나 데이터를 채우는데 제법 시간이 걸린다. 특히나 작은 임베디드 시스템에서는 더욱 그러하다. 게다가, 우리가 흔히 사용하는 LCD 모듈들은 거의 디스플레이 메모리를 시스템 컨트롤러에서 직접 액세스 하지 않고 디스플레이 컨트롤러를 통하여 간접적으로 액세스 하기 때문에 더욱 더 그러하다.

    그래픽 디스플레이 장치에 페이지가 하나밖에 없으면, 한 화면을 보여 주다가 다른 화면을 보여 주려고 하는 경우, 현재의 페이지에다 그 다시 보여주려고 하는 다른 화면을 그려서 보여 주는 방법밖에 없다. 단순히 한 화면 분의 메모리를 디스플레이 메모리에 써넣으려고 하는 경우에도 제법 시간이 걸리는데, 그래픽 LCD에 한글을 표시한다거나 또는 도형을 그린다거나 하는 그래도 제법 앨거리듬이라고 하는 것이 있어서 그리는 조작을 해야 하는 경우에는 더욱 시간이 많이 걸릴 수 있다. 물론 그래 봐야 그 시간이라고 하는 것이 길어야 몇 초이기는 하다. 그렇기는 하지만, LCD를 유저 인터페이스로 하는 장치를 사용하는 엔드유저가 그러한 현실적인 어려움을 알아 주기를 기대하기는 힘든 일이다. 그들은 화면 위에서 어른거리는 그려지는 과정을 불만스럽게 들여다 보면서 제품을 설계한 엔지니어가 기술이 부족한 것은 아닌가 하는 의구심까지 가지게 될 수 있다.

    그런데, 만약 LCD 모듈에 페이지가 하나 이상 있으면 어떨까? 현재 보여 주는 화면을 그대로 유지하면서, 보이지 않는 다른 화면에다 출력을 한 다음, 그 출력이 끝나면, 바로 그 화면을 보여 주는 방법을 사용할 수 있을 것이다. 이런 방법을 쓰면, 현재의 화면이 계속 보이는 시간이 약간 길어지기는 하겠지만, 엔드유저에게 화면이 그려지는 중간 과정을 보여 주지 않고도 보여 주려고 하는 다음 화면을 바로 보여 줄 수 있을 것이다.

    Graphic LCD Designer 모듈은 화면의 크기가 아주 작은 일부 제품을 제외하고는 두 개의 페이지를 가지고 있어서 현재 표시되고 있는 페이지와 다른 페이지에 출력하는 기능을 가지고 있다. 이 기능은 Graphic LCD Designer 모듈의 가장 큰 특징 중 하나이다.

    Graphic LCD Designer 모듈에서는 현재 표시되고 있는 페이지를 보이기 페이지(active page)라고 하고, 현재 출력이 이루어지고 있는 페이지를 그리기 페이지(draw page)라고 한다. 이 두 페이지는 서로 같

    을 수도 있고 다를 수도 있다. LCD 모듈의 두 페이지는 page 0와 page 1로 이름 붙여져 있다. 예컨대, 현재 화면에 보이는 페이지, 즉 보이기 페이지가 page 0이고 출력이 이루어지는 페이지, 즉 그리기 페이지도 page 0이 될 수 있다. 아래의 표에 두 가지의 페이지가 가질 수 있는 페이지 값들의 조합을 보인다.

    보이기 페이지 0 1

    0 같은 페이지 다른 페이지 그리기 페이지 1 다른 페이지 같은 페이지

    보이기 페이지와 그리기 페이지가 같은 경우에는 현재 우리가 출력하는 내용에 의해서 화면의 내용이 변화하는 것을 볼 수가 있다. 반면 두 가지의 페이지가 서로 다른 값을 가질 때, 출력하는 내용은 보이지 않는 화면에 출력되므로 현재 보이는 화면만으로는 어떤 내용이 출력되는지 알 수가 없다.

    단순히 페이지를 전환하는 것만으로 어떤 페이지의 내용이 변화하지는 않는다. 화면 전체를 지우는 명령으로도 그리기 페이지의 전체 화면만 지워지지 모든 화면이 다 지워지지는 않는다. 그래서 Graphic LCD Designer 모듈의 페이지 전환 기능을 이용하면, 두 페이지 사이를 왔다 갔다 하면서 화면을 갱신할 수 있다. 다만 여기에 단 한 가지 제한이 있다. 그리기 페이지를 전환하면, 현재의 커서의 위치는 잃어 버리고 항상, X=0, Y=0으로 갱신된다.

    이 페이지 전환 기능을 제공하기 위해서 Graphic LCD Simulator는 보이기 페이지 및 그리기 페이지를 선택하기 위한 기능을 가지고 있다. 이 기능은 다음 그림에 보이는 것과 같은 두 개의 콤보박스(combo box)로 선택할 수 있다. 보이기 페이지를 변경하려고 하는 경우에는 Active page: 콤보박스에서 페이지를 선택하면 되고, 그리기 페이지를 변경하려고 하는 경우에는 Draw page: 콤보박스에서 페이지를 선택하면 된다.

    Graphic LCD Simulator의 모형 화면은 현재 출력되고 있는 내용이 무엇인가를 보여주는데 주안점이 맞추어져 있기 때문에 항상 그리기 페이지를 보여 준다. 반면 Graphic LCD Designer 모듈의 화면은 항상 보이기 페이지만을 보여주기 때문에 보이기 페이지와 그리기 페이지가 다른 경우 현재 그려지고 있는 내용을 볼 수가 없다. 그래서 많은 경우,

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    12

    Graphic LCD Simulator에 Graphic LCD Designer 모듈이 연결되어 있다면, 모형 화면은 Graphic LCD Designer 모듈의 화면을 그대로 보여 주지만, 보이기 페이지와 그리기 페이지가 다른 경우에는 두 화면은 서로 다른 화면을 보여 준다. 사실 이 점은 Graphic LCD Simulator의 단점이 아니라, 장점이라고 할 수 있다. Graphic LCD Simulator를 이용해서 Graphic LCD Designer 모듈에 인터페이스 하기 위한 프로그램을 개발하는 개발자의 경우 Graphic LCD Simulator에 실제 Graphic LCD Designer 모듈을 하나 달기만 하면, 보이기 페이지와 그리기 페이지가 다른 경우에도 두 페이지를 모두 관찰하면서 작업할 수 있기 때문이다.

    앞서 Graphic LCD Designer 모듈에는 페이지가 두 개가 있다고 하였는데, 실제 두 개의 페이지가 지원되는 모델에서 Active page 및 Draw page 콤보박스를 열어 보면, Page 0 및 Page 1의 선택 외에 또 다른 항목이 있을 것이다. Draw page 콤보박스에는 Next page라고 하는 항목이 있고, Active page 콤보박스에는 Draw page라고 하는 항목이 더 있다. 이 항목들의 기능과 관련하여 소스 생성에 있어서도 약간의 설명이 필요할 수 있는데, 이 부분에 대해서는 뒤의 6.3 보이기보이기보이기보이기 페이지와페이지와페이지와페이지와 그리기그리기그리기그리기 페이지의페이지의페이지의페이지의 소스소스소스소스 생성생성생성생성에서 자세하게 설명하기로 하고, 여기서는 Graphic LCD Simulator의 동작과 관련한 내용을 설명하기로 한다.

    이들 콤보박스에 직접 페이지 값을 지정하기 위한 Page 0 및 Page 1의 선택 외에 또 다른 항목을 둔 것은 Graphic LCD Simulator의 소스 생성기가 생성하게 될 타깃 프로그램의 최적화와 관련되어 있으나, 이 점에 대해서도 소스 생성기에 대한 설명 부분에서 자세히 설명하기로 하고, 여기서는 그 항목들을 선택했을 때 Graphic LCD Simulator가 어떻게 반응하는가 하는 것만 설명하기로 한다.

    그리기 페이지 선택 콤보박스에서 Next page를 선택하면, 현재의 그리기 페이지가 0이면, 그리기 페이지를 1로, 현재의 그리기 페이지가 1이면, 그리기 페이지를 0으로 선택한다. 즉 현재 페이지와 다른 페이지를 선택한다.

    보이기 페이지 선택 콤보박스에서 Draw page를 선택하면, 보이기 페이지의 값을 현재 설정되어 있는 그리기 페이지의 값으로 설정한다.

    Graphic LCD Simulator의 화면에서 보이는 동작, 또는 Graphic LCD Simulator에 연결된 Graphic LCD Designer 모듈에서 하게 되는 가시적인 동작은 이것이 전부이다. 그러나, 이 간단한 기능이 소프트웨어 엔지니어가 자신이 만든, 또는 다른 사람이 만든 소프트웨어를 유지하고 관리하는 데 있어서는 큰 차이를 나타낸다. 현재 그리고 있는 페이지 및 보이

    고 있는 페이지에 대한 정보를 소스 코드를 직접 추적하면서 기억하고 있어야 할 필요가 없어지기 때문이다.

    Graphic LCD Simulator는 모형 화면 및 연결되는 Graphic LCD Designer 모듈에 개별 항목을 직접 그리는 것을 주안점으로 두고 만들어진 소프트웨어이므로 이 점이 그리 커 보이지 않을 수도 있다. Graphic LCD Designer는 Graphic LCD Simulator와 달리 화면을 페이지 단위로 설계하고 그 페이지에서의 사용자의 입력에 따라 반응하도록 만들어진 소프트웨어이므로, 이 기능을 적극적으로 이용하고 있다. 소프트웨어 엔지니어가 코드를 작성하면서 현재 화면이 어느 페이지에 있는가를 알고 있어야 하는 경우와 그럴 필요가 없는 경우의 작업의 생산성에 있어서의 차이는 아주 크게 나타난다.

  • 1313

    4. Graphic designer

    Graphic LCD Simulator에서 버튼을 클릭하면 다음의 그림과 같은 모양의 Graphic designer가 열린다. 이 화면에서는 16×16 크기의 작은 비트맵 그래픽(small bitmap graphic)을 만들 수 있다. Graphic designer는 단순히 비트맵 그래픽을 만들어서 출력하는 기능만 있는 것이 아니라, 크기에 제한이 있기는 하지만, 이름 그대로 디자인을 하여서 저장을 할 수도 있고, 저장해 놓은 디자인을 읽어 올 수도 있을 뿐만 아니라, 상하좌우를 뒤집는다거나, 평행 이동을 하거나, 색상을 뒤집는다거나 하는 따위의 일들을 할 수 있게 되어 있다.

    4.1 작은작은작은작은 그래픽의그래픽의그래픽의그래픽의 편집편집편집편집

    이 화면에서 그리드가 표시된 큰 정사각형 부분을 마우스로 누른 다음 이동하면 눌러진 위치의 색과 반대되는 색으로 변하게 되는데, 바로 이 방법으로 원하는 형태의 그림을 그릴 수 있다. 즉 현재 화면에서 마우스로 누른 위치의 색이 흰색이면, 마우스로 누른 순간 그 점의 색이 검은색으로 바뀌게 되고 마우스를 누른 상태에서 계속 움직이면 마우스가 지나가는 위치의 점들의 색도 그 색과 같은 색인 검은색으로 바뀌게 된다. 마우스를 검은색이 있는 위치를 누른 다음 움직이게 되면 마우스가 지나가는 점들의 색은 흰색으로 바뀌게 될 것이다. 여기에서 그리드 격자가 감싸는 하나의 작은 정사각형이 그리고자 하는 작은 그래픽의 한 픽셀을 나타낸다.

    이 정사각형 화면의 오른쪽 아래에 있는 작은 정사각형은 이 작은 그래픽을 실제 화면에 나타내었을 때의 모양을 보여 준다.

    마우스를 그래픽 이미지 화면 위로 움직이면 아래의 상태 표시줄의 왼쪽에 그래픽 이미지 화면에서 마우스가 있는 위치의 좌표가 표시된다.

    정사각형으로 된 그래픽 이미지 화면의 아래에 여러 개의 버튼이 있는데, 이 버튼들은 마우스를 그래픽 이미지 화면에서 눌러서 움직이는 것만으로는 할 수 없는 조작을 할 수 있게 하여 준다.

    이들 버튼 중 및 버튼은 각각 그래픽 이미지를 아래위로, 좌우로 뒤집어 주는 기능을 한다.

    버튼 , , 및 는 각각 그래픽 이미지를 위로, 아래로, 왼쪽으로, 그리고 오른쪽으로 한 픽셀

    만큼 이동시키는 기능을 한다. 예를 들어 버튼을 누르면 그래픽 이미지가 전체적으로 왼쪽으로 한 픽셀만큼 이동하게 될 것이다. 이때, 그래픽 이미지의 맨 왼쪽 부분에 있던 점들은 화면의 오른쪽에 나타나게 된다. 그래서 사실 이 버튼의 기능은 왼쪽으로 하는 이동 기능이 아니라 그래픽 이미지를 옆으로 말아 놓고 왼쪽으로 방향으로 회전하게 하는 기능이라고 할 수 있다. 여기서 회전하게 한다는 용어를 사용한다고 해서 뒤에 설명하게 되는,

    버튼을 눌러서 이미지를 옆으로 90도 돌려 주는 기능과 혼동해서는 안 된다. 이런 회전 조작을 하지 않고 단순히 한 방향으로 이동을 하기만 하고자 하는 경우에는 그 반대쪽에 나타나게 되는 한 줄의 픽셀들을 마우스로 직접 화면을 조작하여 지우면 된다. 그래픽 이미지의 크기가 그리 크지 않기 때문에 이 조작이 그리 번거롭지는 않을 것이다.

    버튼은 이미지를 전체적으로 시계방향으로 90도 돌게 하는 기능을 한다. 이미지를 반시계방향으로 90도 돌리고자 하는 경우에는 이 버튼을 세 번 눌러 주면 되겠다.

    버튼은 이미지 전체를 지워서 바탕색인

    검은색이 되게 한다. 버튼은 이미지의 흑백을 전체적으로 뒤집는다. 즉, 흰색인 부분은 검은색으로, 검은색 부분은 흰색으로 바꾸어 준다.

    버튼을 누르면 편집한 16×16 크기의 작은 비트맵이 모형 화면 및 Graphic LCD Designer 모듈의 현재의 커서 위치에 문자처럼 삽입된다.

    버튼을 누르면, Graphic designer 화면이 닫히고 편집한 비트맵 이미지가 모형 화면이나 Graphic LCD Designer 모듈에 삽입되지 않는다. Graphic designer는 다른 일반적인 프로그램에서의 대화 상자가 닫히면 그 대화 상자에서 변경한 내용

    이 모두 없어지는 것과 달리 버튼을 눌러도 Graphic designer에서 편집한 내용이 완전히 취소되지 않는다. 즉 다음에 작은 비트맵을 삽입하기 위해서 Graphic designer를 열면, 마지막으로 편집하던 내용이 그대로 남아 있다. 또한 프로그램을

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    14

    종료할 때 Graphic designer에서 변경된 내용이 있으면, 저장할 것인가를 물어 본다.

    4.2 특수특수특수특수 문자문자문자문자 입력기입력기입력기입력기에서에서에서에서 불러불러불러불러 오기오기오기오기

    특수 문자 입력기에서 선택할 수 있는 특수 문자를 변형하여 사용하고 싶은 경우가 있을 수 있다. 이럴

    때는 버튼을 누르면 특수 문자 입력기가 열려서 변형하여 사용할 특수 문자를 선택할 수 있다. 여기서 원하는 문자를 선택하면, 이 문자의 16×16 크기의 비트맵 데이터가 Graphic designer 화면에 그려진다. 이 비트맵 데이터를 편집하여 원하는 작은 그래픽을 만들 수 있다. 특수 문자 입력기의 사용에 대해서는 3.3.2 특수특수특수특수 문자문자문자문자 입입입입력기력기력기력기에서 설명된다.

    이 기능은 일단 현재 Graphic designer 화면에 있는 내용을 완전히 지우고 새로 특수 문자의 비트맵을 화면에 나타내는 기능이기 때문에 이전에 편집하던 내용이 있으면 완전히 지워진다. 그래서 이전에 변경된 편집 내용이 있으면 특수 문자를 그리기 전에 이 내용을 저장할 것인가를 물어 본다. 여기서

    버튼을 누르면 저장할 파일 이름을 선택하는 대화 상자가 열려서 내용을 저장할 수 있다.

    버튼을 누르면 앞서 변경한 내용을 무시하고 선택한 특수 문자의 비트맵이 Graphic designer 화면에 그려진다. 버튼을 누르면 특수 문자 비트맵을 그리는 기능이 취소된다.

    4.3 다른다른다른다른 그래픽그래픽그래픽그래픽 프로그램에서프로그램에서프로그램에서프로그램에서 그림을그림을그림을그림을 복사하기복사하기복사하기복사하기

    크기가 16×16 밖에 되지 않고 단색으로 제한되어 있기는 하지만 Graphic designer도 그 자체로서 하나의 그래픽 프로그램이다. 다른 그래픽 에디터 프로그램에서 작성한 그림을 Graphic designer에 복사하여 옮길 수 있다. 다른 그래픽 프로그램에서 그림을 클립보드에 복사한 다음 Graphic designer 화면에서 Ctrl-V나 Shift-Insert 키를 누르면 그 그림의 왼쪽 상단 16×16 부분이 Graphic designer의 그래픽 이미지 화면으로 복사된다.

    복사되기 전의 그림이 단색이 아니면 Graphic designer는 일단 복사되는 그림을 회색 레벨을 갖는 흑백으로 변환한 다음 정해진 회색 레벨을 기준으로 하여 그 값보다 밝으면 흰색으로, 어두우면 검은색으로 바꾼다. 그림이 복사되면 화면의 오른쪽 아래에 회색 레벨의 문턱값을 정해 주기 위한 수치 입력기가 나타난다. 회색 값은 0에서 255 사이의 값을 가질 수 있다. Graphic designer에서 다른 조작을 하면 더 이상 문턱값을 변경할 수 없으며, 수치 입력기도 화면에서 없어진다.

    이 경우에도 이전에 변경된 편집 내용이 있으면 특수 문자를 그리기 전에 이 내용을 저장할 것인가를

    물어 본다. 여기서 버튼을 누르면 저장할 파일 이름을 선택하는 대화 상자가 열려서 내용을 저장할 수 있다. 버튼을 누르면 앞서 변경한 내용을 무시하고 복사한 그림이 Graphic designer 화면에 그려진다. 버튼을 누르면 그림을 복사하는 기능이 취소된다.

    4.4 디스크에서디스크에서디스크에서디스크에서 읽어읽어읽어읽어 오기오기오기오기

    버튼을 눌러 디스크에 저장된 비트맵 이미지를 읽어 올 수 있다. 읽어 올 수 있는 파일의 형식은 두 가지가 있다. 하나는 HLCD Bitmap이라고 하는 Graphic LCD Simulator에서만 사용하는 16×16 크기의 단색 비트맵 형식이고, 다른 하나는 Windows에서 사용하는 비트맵 파일(BMP file)이다. 이 두 가지 파일의 형식은 열기 대화 상자의 파일 형식 항목에서 선택할 수 있다. 비트맵 파일의 경우 비트맵의 크기가 16×16 보다 크면, 그 비트맵의 왼쪽 위 16×16 부분만 읽어 온다.

    읽어 온 파일이 BMP 파일이고 그 파일의 그림이 단색이 아니면 Graphic designer는 일단 복사되는 그림을 회색 레벨을 갖는 흑백으로 변환한 다음 정해진 회색 레벨을 기준으로 하여 그 값보다 밝으면 흰색으로, 어두우면 검은색으로 바꾼다. 그림이 복사되면 화면의 오른쪽 아래에 회색 레벨의 문턱값을 정해 주기 위한 수치 입력기가 나타난다. 회색 값은 0에서 255 사이의 값을 가질 수 있다. Graphic designer에서 다른 조작을 하면 더 이상 문턱값을 변경할 수 없으며, 수치 입력기도 화면에서 없어진다.

    파일을 읽어 오기 이전에 변경된 편집 내용이 있으면 특수 문자를 그리기 전에 이 내용을 저장할 것인가를 물어 본다. 여기서 버튼을 누르면 저장할 파일 이름을 선택하는 대화 상자가 열려서 내용을 저장할 수 있다. 버튼을 누르면 앞서 변경한 내용을 무시하고 복사한 그림이 Graphic designer 화면에 그려진다. 버튼을 누르면 그림을 복사하는 기능이 취소된다.

    4.5 디스크에디스크에디스크에디스크에 저장하기저장하기저장하기저장하기

    버튼을 누르면 현재 Graphic designer에서 편집하던 작은 그래픽을 디스크에 저장할 수 있다. Graphic designer는 현재 편집하고 있는 작은 그래픽에 파일 이름이 지정되어 있는가 하는 것과 무관하게 항상 새로 저장할 파일의 이름을 물어 본다. 저장할 파일의 이름으로 기존에 디스크에 있는 파일의 이름과 같은 이름의 파일 이름이 지정되면 기존의 파일을 삭제하고 현재 편집하고 있는 작은 그래픽을 그 파일의 이름으로 저장한다. 물론 디스크에 같은 이름의 파일이 있으면 그 파일에 덮어 쓸

  • 4. Graphic designer

    15

    것인가를 물어 본다.

    4.6 작은작은작은작은 그래픽그래픽그래픽그래픽 파일파일파일파일 이름에이름에이름에이름에 대한대한대한대한 제한제한제한제한

    Graphic LCD Simulator에서 작은 그래픽 파일의 이름은 특별한 역할을 한다. 작은 그래픽 파일의 이름은 소스 생성기에서 변수의 이름이 된다. 물론 그 자체로 변수 이름을 구성하는 것은 아니고, Graphic LCD Simulator는 파일 이름을 소문자로 변환한 다음 그 앞에 img_라고 하는 접두어를 붙여서 함수의 이름으로 사용한다. 그래서 작은 그래픽 파일 이름 앞에 접두어 img_를 붙였을 때 C 언어에서 사용할 수 있는 올바른 식별자(identifier)가 되어야 한다. 그래서 알파벳, 숫자 및 밑줄 문자만 포함하여야 하고, 공백이나 특수 문자를 포함하지 않아야 한다는 조건이 필요하다.

    Graphic LCD Simulator가 파일 이름 앞에 자동으로 img_라는 접두어를 붙이기 때문에 파일 이름에 image라든가 img와 같이 image를 뜻하는 단어나 약어를 포함하는 것은 그리 바람직하지 않다고 여겨진다. 물론 그 이름이 위에 밝힌 것과 같이 식별자 규칙만 만족한다면, 컴파일러는 불평을 하지 않을 것이다. 프로그램의 소스 파일은 오로지 컴파일러가 읽기 위한 것이 아니라 사람도 읽는 것이다. 그러므로 파일 이름에다 그런 내용을 넣어서 중언 부언의 느낌이 들게 하는 것은 그리 좋아 보이지 않는다는 것이다. 물론 사용자가 알아서 판단할 일이다.

    작은 그래픽 파일 이름에 대한 이런 제한은 뒤에 설명하게 될 매크로 파일의 이름에 대해서도 비슷하게 적용된다.

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    16

    [This page is left blank intentionally.]

  • 1717

    5. 매크로매크로매크로매크로의의의의 사용과사용과사용과사용과 편집편집편집편집

    페이지 선택기에서 [Macro] 탭을 선택하면 그림과 같은 매크로 기능 페이지가 나타난다.

    앞서 2. 시작하기시작하기시작하기시작하기에서 버튼을 누르면

    매크로의 기록이 시작되고, 버튼을 누르면 기록이 중단된다는 것은 설명하였다. 매크로의 기록이 시작되면, 기록을 중단할 때까지 Graphic LCD Simulator가 Graphic LCD Designer 모듈의 동작과 관련하여 하는 모든 동작이 매크로로 기록이 된다. 기록이 되는 대상은 화면을 지운다거나, 문자를 출력한다거나 하는 눈으로 볼 수 있는 동작이 있는가 하면, 글자체의 선택이라거나, 글자 폭을 지정한다거나 하는 것과 같이 바로 직접 눈에 보이지는 않지만, Graphic LCD Designer 모듈의 동작에 영향을 주는 것들이 있다.

    다만 뒤에 설명할 선 및 도형 그리기 기능의 채우기 선택 및 그릴 색의 선택, 그리고 비트맵 그래픽 기능의 흑백 반전의 선택 등은 기록되지 않는다. 이러한 기능들은 그 한 동작으로 Graphic LCD Designer 모듈에 대한 명령을 구성하지 않고, 이후에 행하게 될 실제 Graphic LCD Designer 모듈에 대한 명령의 성분이 되기 때문이다.

    버튼을 눌러서 매크로 기록을 시작하고 나서, Graphic LCD Designer 모듈에 대한 여러 가지

    명령을 실행한 다음, [Macro] 탭을 선택하여 열면 그 페이지 상단에 있는 목록이 그 기록된 명령들을 보여 준다. 이제 이 페이지에 있는 기능들을 살펴 보기로 하자.

    이 페이지의 상단에 있는 목록은 기록된 명령들을 나열하고 있다. 이 목록은 두 개의 칼럼으로 간단하게 구성되어 있는데, 하나는 명령어(command) 칼럼이고, 다른 하나는 그 명령에 사용된 인수(parameter)들을 보여 주기 위한 칼럼이다.

    명령어 칼럼에 표시되는 명령어는 Graphic LCD Simulator 또는 Graphic LCD Designer 모듈과 함께 공급되는 Graphic LCD Designer 라이브러리에서 사용하는 함수의 이름과 일치하므로 그 의미를 이해하기 위해서는 Graphic LCD Designer 라이브러리라이브러리라이브러리라이브러리 사용설명서사용설명서사용설명서사용설명서를 참조하면 될 것이다. 각 함수 별로 사용되는 인수들의 의미도 같은 사용설명서에 나오므로, 여기서는 더 이상 자세하게 설명하지 않는다. 이 설명서에서는 Graphic LCD Simulator에서 매크로 및 그 항목들을 다루는 방법에 대해서만 설명하기로 한다.

    5.1 매크로의매크로의매크로의매크로의 기록기록기록기록 시작시작시작시작

    앞서도 설명하였지만, 이 버튼을 누르면 언제라도 Graphic LCD Designer 모듈에 대한 명령들에 대한 기록을 시작할 수 있다. [Macro] 페이지에 있는 목록에 이미 (어떤 방법에 의해서건) 명령 항목들이 들어 있어서 그 목록이 비어 있지 않다면, 이 버튼을 누르는 것으로 목록에 이미 들어 있던 명령어 항목들을 지우지는 않는다. 이 버튼을 누르고 나면, 그 후에 기록되는 명령어들은 현재 목록에 있는 항목에 추가되어 기록된다. 그래서, 매크로 기록을 정지

    하기 위하여 버튼을 눌러서 매크로 기

    록을 정지하였다가 나중에 다시 버튼을 눌러서 기록을 시작하여도 앞에 있던 기록이 없어지지 않고 계속된다. 이 점에 대한 논의는, 형식적

    이기는 하지만, 버튼에 대한 설명을 나열한 다음에 계속하기로 하자.

    5.2 매크로의매크로의매크로의매크로의 기록기록기록기록 정정정정지지지지

    버튼을 눌러 매크로의 기록을 시작하면

    같은 위치에 있는 버튼의 모양이 로 바뀐다. 다시 그 버튼을 눌러 보면, 버튼의 모양이 다

    시 로 되돌아온다. 이 버튼은 버튼의 그

  • Graphic LCD Simulator 사용설명서사용설명서사용설명서사용설명서

    18

    림이 일 때는 이 버튼을 누르면 매크로 기록을 시작하게 된다는 것을 의미하고, 버튼의 그림이 일 때는 이 버튼을 누르면 매크로 기록을 멈추게 된다는 것을 의미한다. 녹음기나 VCR의 플레이 버튼과 정지 버튼 기능의 의미와 상통한다.

    5.3 매크로의매크로의매크로의매크로의 기록기록기록기록 시시시시작과작과작과작과 정정정정지에지에지에지에 대한대한대한대한 특별한특별한특별한특별한 설명설명설명설명

    버튼을 누르면 매크로의 기록이 시작되

    고, 버튼을 누르면 매크로의 기록이 중

    단되고, 다시 버튼을 누르면 매크로의

    기록이 계속되는 것이라면, 버튼을 매크로의 정지가 아니라 일시 정지(pause)라고 해야 하는 것 아닌가 하는 주장이 있을 수 있다. Windows Media Player 식으로 이야기하면, 맞는 이야기이다. Windows를 사용하는 컴퓨터에 있을 이 프로그램에서는 파일 재생 중 일시 정지 버튼을 눌렀을 때는 재생 위치 슬라이더가 현재의 위치에 있으면서 재생이 중단된다. 반면 정지 버튼을 누르면 재생 위치 슬라이더가 맨 왼쪽의 처음 위치로 되돌아가고 정지한다.

    그러나, 그런 것은 Windows Media Player에서나 있는 이야기이고, 우리가 예전에 흔히 쓰던 카세트 녹음기 같은 것은 그런 식으로 되어 있지 않다. 재생 버튼을 누르면 테이프의 현재 위치에서부터 재생을 하다가, 정지 버튼을 누르면 그냥 그 위치에서 재생을 멈춘다. 그리고 다시 재생을 누르면, 또 다시 그 위치에서 다시 재생을 시작한다. 정지와 일시 정지의 유일한 차이는 정지를 누르면 다음에 꺼내기 버튼을 눌렀을 때 테이프를 빼낼 수 있도록 재생 메커니즘을 테이프에서 제거하는 반면, 일시 정지를 눌렀을 때는 재생 메커니즘을 테이프에 넣어 놓고 동작만 멈춘다는 점이다.

    Graphic LCD Simulator에서는 그런 메커니즘 로딩 기능이 없으므로 이 둘을 전혀 구분할 필요가 없다.

    버튼을 누를 때마다, 기록 중이던 매크로를 지우려고 대화 상자가 튀어 나와서 “현재 기록 중인 매크로를 지우려고 합니다. 저장할까요?” 하는 식으로 물어 본다면 오히려 번거로울 뿐이다.

    5.4 매크로매크로매크로매크로를를를를 저장저장저장저장하기하기하기하기

    이 버튼을 누르면, 이 페이지 상단에 있는 명령어 목록이 디스크에 저장된다. 저장할 파일의 이름이 이미 지정되어 있으면 그 이름의 파일에 저장할 것이고, 파일의 이름이 지정되어 있지 않다면, Graphic LCD Simulator는 아래의 매크로를매크로를매크로를매크로를 다른다른다른다른 이름으로이름으로이름으로이름으로 저저저저장하기장하기장하기장하기에서 설명하는 것과 같은 방법으로 저장하기 위하여 저장할 파일의 이름을 물어 볼 것이다. 지금

    까지 기록한 매크로를 저장해 두어야지, 내일 아침에 오늘 하던 일을 계속하려고 할 때, 오늘 한 일의 결과가 남아 있을 것이다.

    저장할 파일의 이름이 미리 지정되어 있다고 하는 것은 같은 이름의 파일이 이미 디스크에 존재하고 있다는 것을 의미한다. 이것이 가능한 경우는 두 가지가 있을 것이다. 하나는 디스크에 있는 매크로 파

    일을 읽어 온 다음 , 즉 매크로 기록 시작 버튼을 눌러서 매크로가 변경되게 한 경우일 것이고, 또 다른 하나는 앞서 어느 시점에서

    버튼을 누르든, 버튼을 눌러서 현재 목록에 있는 매크로의 이전 버전을 저장한 경우일 것이다.

    어느 경우든, 파일 이름이 미리 지정되어 있을 때,

    버튼을 누르면, Graphic LCD Simulator는 디스크에 이미 있는 파일을 갱신할 것인가 물어 보지 않고 현재의 매크로를 저장한다.

    5.5 저장된저장된저장된저장된 매크로매크로매크로매크로 불러불러불러불러 오기오기오기오기

    이 버튼을 누르면, 디스크에 저장된 매크로를 읽어서 새로 명령어 목록에 올린다. 일단 디스크에 저장된 매크로를 목록에 올렸으니, 이제 남은 일은 달리 설명하는 방법으로 변경하든가 활용하든가 하는 일이 남았다. 더 이상의 설명이 불필요할 것이다.

    5.6 매크로를매크로를매크로를매크로를 다른다른다른다른 이름으로이름으로이름으로이름으로 저장하기저장하기저장하기저장하기

    앞서 매크로를 저장하는 방법에 대해서 설명하였다. 이 버튼을 누르면, 매크로를 저장하기는 하되, 저장할 새로운 파일 이름을 물어 본다는 차이가 있다. 저장할 파일 이름으로 이미 디스크에 그 이름이 있는 파일 이름을 선택하면 정말로 그 이름으로 저장할 것인가도 물어 본다. 이런 친절한 것인지 귀찮은 것인지 구분이 안 가는 과정만 제외하면, 위에 설명한 5.5 매크로매크로매크로매크로를를를를 저장저장저장저장하기하기하기하기와 전혀 차이가 없다.

    5.7 새로운새로운새로운새로운 매크로의매크로의매크로의매크로의 작성작성작성작성

    이 기능의 이름에 대해서 약간 헷갈릴 수 있을 것이다. 새로운 매크로의 작성은 매크로의 기록 시작을

    나타내는 버튼을 눌러서 시작하는 것이 아닌가 하는 생각을 할 수도 있을 것이다. 이 점에 대해서 설명하기 위해서 앞서 매크로의 기록 시작과 종료를 설명하기 위해서 사용했던 녹음기의 비

  • 5. 매크로의매크로의매크로의매크로의 사용과사용과사용과사용과 편집편집편집편집

    19

    유를 사용해 보기로 하자. 버튼을 누르는 행위는 녹음기 식으로 이야기하자면, 녹음 버튼을 누르는 것이고, 새로운 매크로의 작성이라고 하는 기능은 녹음기에 새로운 테이프를 삽입하는 행위와 같은 것이다. 녹음기에 새 테이프를 넣는다고 녹음이 자동으로 되지 않는 것과 같이 이 기능을 선택한다고 해서 새로운 매크로 기록이 시작되는 것은 아니다. 이 기능은 새로운 매크로의 기록을 준비하는 것이다.

    또한 녹음기에 새로운 테이프를 넣으면, 앞서 녹음기에 들어 있던 테이프의 내용이 녹음기와 전혀 상관이 없어지는 것처럼 이 기능을 수행하고 나면, 매크로는 앞서 프로그램을 처음 실행한 다음 매크로 탭을 처음 열었을 때처럼 깨끗하게 지워진 상태가 된다. 이제 새로운 마음으로 새로운 매크로를 만들 수 있을 것이다.

    5.8 매크로에서매크로에서매크로에서매크로에서 프로그램프로그램프로그램프로그램 소스소스소스소스 만들기만들기만들기만들기

    이 버튼을 누르면, Graphic LCD Simulator의 소스 생성기(source generator)가 명령어 목록을 이용하여 C 언어 프로그램 소스 코드를 만들어 준다. 명령어 목록에 어떤 항목도 없으면 (당연히) 어떤 프로그램 소스 코드도 만들어지지 않는다.

    명령어 목록에 항목들이 있으면 Graphic LCD Simulator는 Source Viewer라는 텍스트 에디터 화면을 열고 그 화면에 C 언어 프로그램 소스 코드를 만들어 준다. 이 코드는 오려 붙이기를 이용해서 사용자가 개발 중인 프로그램 소스 코드에 포함시킬 수 있을 것이다. 예를 들어 다음과 같은 모양의 명령어 목록이 있다고 가정해 보자.

    버튼을 누르면, Source Viewer 화면이 열리고 다음과 같은 C 언어 소스 파일이 만들어진다. (이 소스에서 줄의 맨 앞에 나타낸 줄 번호는 소스 생성기에서 만든 것이 아니라 논의의 편의상 붙

    인 것이다.)

    1. lcd_clear_screen(); 2. lcd_locate(5,4); 3. lcd_write_str("문자열 시험 출력입니다"); 4. lcd_locate(11,11); 5. lcd_write_str("또 다른 문자열 시험 출력입니다");

    Graphic LCD Simulator가 매크로를 이용해서 생성하는 C 언어 소스 코드에 대해서는 좀 뒤에 소스 생성기에 대한 설명에서 더욱 자세하게 논의할 것

    이므로, 여기서는 버튼을 누르면, Graphic LCD Simulator의 소스 생성기가 이런 식으로 프로그램 소스를 생성해 준다는 점만 이해하고 넘어 가기로 하자.

    버튼 아래에 Output option이라고 하는 상자가