| 信彦の家 | |||
|
|
SG12864 ライブラリ
GLCD LIB
(グラフィックLCD SG12864制御 用 ライブラリ)
ライブラリの特徴
・全角日本語が簡単に表示できる。 ・線、四角、丸などの図が簡単に表示できる。 ・早い! ・H8-3069F + MES の環境があれば即座に使える。 ・MES の環境が無くても、PICやSHでも、ヘッダを編集するだけで使える。(ハズ)
GLCD LIB ダウンロード → glcd_lib_102.zip (225KB)
※ 101 → 102 にバージョンアップしました! 使い方に変更はありません。更に高速に動作します。
後、グラフィックを表示する時は、TETSUYA さんが公開している「 SG12232用フォント作成補助ツール BMP2FONT 」を使うと、ビットマップファイルからC用の配列を書いてくれるので、かなり便利です。
【 タイトル 】 GLCD LIB Ver.1.02 【 動作環境 】 RAM 4KB以上 ROM 16KB以上 (フォント未使用時 【 作 成 日 】 2008/5/24 【 製 作 者 】 秋月 信彦 【 配布形態 】 フリーウェア 【 転 載 】 自由 ■はじめに この度は「GLCD LIB」をダウンロードして頂き、誠にありがとうございます。 「GLCD LIB」は、マイコンからSG12864を制御するためのライブラリです。 描画用にRAM領域を約2KB使用します。また、日本語フォントデータをコンパイルすると約170KBになるので、使用時はメモリ量にご注意ください。 使用するRAM領域 約 2KB GLCDライブラリコンパイル時要領(ROM) 約 8KB 日本語ライブラリコンパイル時要領(ROM) 約 170KB サンプルではH8/3069Fを使用したソースになっていますが、条件さえ充たしていればヘッダを修正するだけで、PICでもSHでも使えます。 ■GLCD LIB の特徴 GLCD LIB は グラフィックLCD SG12864 専用のライブラリです。 高速に動作させるために、グラフィックバッファを2K取り、前回との差分のみをLCDへ送信しています。 そうする事により、LCDへ送信するデータを最小限に抑えられ、高速に動作します。 ■ファイルの説明 ○メインファイル メイン動作になるプログラムを書きます。 main.c -- ココにいろんな絵を描いたりする動作を書いてね main.h -- ココで共通使用するライブラリなんかのインクルードをしてね ○グラフィックLCDライブラリ LCDを制御するためのライブラリと、バッファ上に絵を描いたりするためのライブラリです。 glcd_lib.c -- ライブラリ用の関数が書いてあります。(ココは変更無しに使えるハズ glcd_lib.h -- ココで、GLCDがどの足につながってるかとか設定してね ○全角日本語ライブラリ LCDライブラリのバッファ上に日本語を描くためのライブラリです。 フォントサイズが 12px×12px固定です。(フォントデータを自分で作れば一応変えられる) コンパイルするとフォントデータが170Kくらいなので、使用しない場合は外すべし。 shinonomefont.h -- フォントデータです。 zenkaku.c -- ライブラリ用関数が書いてあります。 zenkaku.h -- 関数を使うためのヘッダです。 ○プロジェクトファイル MESのWindows用の開発環境 CBar Lite で使用するプロジェクトファイルです。 CBar を使ってる人は、コレを使えばスグコンパイルできるハズ main.cba -- CBar用プロジェクトファイル Makefile -- 普通はCBarが勝手に作ってくれるんだけど、一応置いときます。 ■ライブラリリファレンス □glcdInit( void ) ライブラリ、グラフィックLCD機器の初期化をします。 パラメータ: 無し 戻り値: 無し □clearGlcdData( unsigned char ch ) グラフィックバッファを指定した値でクリアします。 パラメータ: unsigned char ch リセットする値( 0x00(真っ白) ~ 0x55(シマシマ) ~ 0xff(真っ黒) ) 戻り値: 無し □sendgGlcdData( void ) グラフィックバッファに描かれているデータをLCDへ送信します。 パラメータ: 無し 戻り値: 無し □glcdPset( int x, int y, int c ) グラフィックバッファの指定した位置へ、1pxの点を描きます。 パラメータ: int x 書き込みたい位置(X座標) int y 書き込みたい位置(Y座標) int c 書き込みたい色( 0=白 / 1=黒 ) 戻り値: 無し □glcdLine( int sx, int sy, int ex, int ey, int c ) グラフィックバッファに線を描きます。 パラメータ: int sx 書き込みたい開始位置(X座標) int sy 書き込みたい開始位置(Y座標) int ex 書き込みたい終了位置(X座標) int ey 書き込みたい終了位置(Y座標) int c 書き込みたい色( 0=白 / 1=黒 ) 戻り値: 無し □glcdRect( int sx, int sy, int ex, int ey, int c ) グラフィックバッファへ四角を描きます。(中は空) パラメータ: int sx 書き込みたい開始位置(X座標) int sy 書き込みたい開始位置(Y座標) int ex 書き込みたい終了位置(X座標) int ey 書き込みたい終了位置(Y座標) int c 書き込みたい色( 0=白 / 1=黒 ) 戻り値: 無し □glcdSRect( int sx, int sy, int ex, int ey, int c ) グラフィックバッファへ四角を描きます。(塗りつぶす) パラメータ: int sx 書き込みたい開始位置(X座標) int sy 書き込みたい開始位置(Y座標) int ex 書き込みたい終了位置(X座標) int ey 書き込みたい終了位置(Y座標) int c 書き込みたい色( 0=白 / 1=黒 ) 戻り値: 無し □glcdDdaCircle( int xo, int yo, int r, int c ) グラフィックバッファへ丸を描きます。(中は空) パラメータ: int xo 書き込みたい円の中心点(X座標) int yo 書き込みたい円の中心点(Y座標) int r 書き込みたい円の半径 int c 書き込みたい色( 0=白 / 1=黒 ) 戻り値: 無し □glcdDdaSCircle( int xo, int yo, int r, int c ) グラフィックバッファへ丸を描きます。(塗りつぶす) パラメータ: int xo 書き込みたい円の中心点(X座標) int yo 書き込みたい円の中心点(Y座標) int r 書き込みたい円の半径 int c 書き込みたい色( 0=白 / 1=黒 ) 戻り値: 無し □glcdImage( int x, int y, int w, int h, unsigned char *data ) グラフィックバッファへ画像を描く。 パラメータ: int x 書き込みたい位置(X座標) int y 書き込みたい位置(Y座標) int w 書き込みたい画像の幅 int h 書き込みたい画像の高さ unsigned char *data 書き込みたい画像データ 戻り値: 無し グラフィックデータは、高さ8pxを16進数にしたビットデータの羅列を渡します。 高さ8px以上の画像データを表示する場合も、同じ様に高さ8pxのデータを上から1行 ずつ羅列していきます。 例:高さ16px、幅5px の画像を表示する場合、
unsigned char sima_sima[10] = {
0x55,0x55,0x55,0x55,0x55, (←上8pxのデータ)
0x55,0x55,0x55,0x55,0x55 (←下8pxのデータ)
} ;
glcdImage( {表示位置X}, {表示位置Y}, 5, 16, sima_sima, 1 ) ;
※ LCDへの送信モジュールは、後閑哲也さんが公開している 「 PIC24H 製作例 オシロスコープ 」を参考に作成しました。 電子工作の実験室 → http://www.picfun.com/
GLCD LIB ダウンロード → glcd_lib_102.zip (225KB)
|
||
| Copyright (C)2007 Nobuhiko All Rights Reserved. | |||