2/sep/2013 新規
13/feb/2014 更新
カラー漢字 LCD ライブラリの解説です。
※ 現時点では、Arduino Due には対応できていません。(Arduino IDE 1.5.5 の Wire ライブラリの不備の為)
// TWI 通信用ライブラリ:必須です #include <Wire.h> // カラー漢字 LCD 用ライブラリ #include <ColorKanjiLCD.h> |
SRAM 上の文字列 (書き換え可能) | プログラムメモリ上の文字列 (書き換え不可能) | |
通常の文字列 | char str[ ] = "日本語"; ※ SRAM を10バイト占有 | PROGMEM prog_char pstr[ ] = "日本語"; ※プログラムメモリを10バイト占有 |
ワイド文字列 | wchar_t wstr[ ] = L"日本語"; ※ SRAM を8バイト占有 | PROGMEM prog_wchar pwstr[ ] = L"日本語"; ※プログラムメモリを8バイト占有 |
SRAM 上の文字列 | プログラムメモリ上の文字列 | |
通常の文字列 | print (str) | print_P (pstr) |
ワイド文字列 | wprint (wstr) | wprint_P (pwstr) |
定義 | 値 | コメント |
CKLCD_MAX_L_WIDTH | 160 | ランドスケープモード時:最大グラフィック表示幅 (仮想画面サイズとは関係無く、物理的な画面サイズ) ※ CKLCD_MAX_P_HEIGHT に等しい |
CKLCD_MAX_L_HEIGHT | 128 | ランドスケープモード時:最大グラフィック表示高さ (同上) ※ CKLCD_MAX_P_WIDTH に等しい |
CKLCD_MAX_P_WIDTH | 128 | ポートレートモード時:最大グラフィック表示幅 (同上) ※ CKLCD_MAX_L_HEIGHT に等しい |
CKLCD_MAX_P_HEIGHT | 160 | ポートレートモード時:最大グラフィック表示高さ (同上) ※ CKLCD_MAX_L_WIDTH に等しい |
CKLCD_MAX_ENCODING | 6 | サポートしている符号化方式の数 |
CKLCD_UTF16_BOM | L'\uFEFF' | Byte Order Mark |
定義 | 値 | コメント |
CKLCD_MAX_VPLANES | 2 | 最大仮想画面数 |
CKLCD_VPLANE1 | 0 | 仮想画面1:160×256画素サイズ固定 |
CKLCD_VPLANE2 | 1 | 仮想画面2:160×128画素サイズ固定 |
CKLCD_VPLANE1_MAX_L_WIDTH | 160 | 仮想画面1:ランドスケープモード時:最大幅 |
CKLCD_VPLANE1_MAX_L_HEIGHT | 256 | 仮想画面1:ランドスケープモード時:最大高さ |
CKLCD_VPLANE1_MAX_P_WIDTH | 256 | 仮想画面1:ポートレートモード時:最大幅 |
CKLCD_VPLANE1_MAX_P_HEIGHT | 160 | 仮想画面1:ポートレートモード時:最大高さ |
CKLCD_VPLANE2_MAX_L_WIDTH | 160 | 仮想画面2:ランドスケープモード時:最大幅 |
CKLCD_VPLANE2_MAX_L_HEIGHT | 128 | 仮想画面2:ランドスケープモード時:最大高さ |
CKLCD_VPLANE2_MAX_P_WIDTH | 128 | 仮想画面2:ポートレートモード時:最大幅 |
CKLCD_VPLANE2_MAX_P_HEIGHT | 160 | 仮想画面2:ポートレートモード時:最大高さ |
定義 | 値 | コメント |
CKLCD_ORIENT_LANDSCAPE | 0x00 | ランドスケープモード:液晶画面を横長にした状態 |
CKLCD_ORIENT_PORTRAIT | 0x40 | ポートレート モード:液晶画面を縦長にした状態 |
定義 | 値 | コメント |
CKLCD_DISP_SCREEN_NONE | B000000 | Front面:無し、Back面:無し ※常に黒が表示されます。このモードの時は、仮想画面1と2は LCD に表示されないので作業エリアとして使用可能 |
CKLCD_DISP_SCREEN_B1 | B000100 | Front面:無し、Back面:仮想画面1(160×256) ※このモードの時は、仮想画面2は LCD に表示されないので作業エリアとして使用可能 |
CKLCD_DISP_SCREEN_B2 | B000101 | Front面:無し、Back面:仮想画面2(160×128) ※このモードの時は、仮想画面1は LCD に表示されないので作業エリアとして使用可能 |
CKLCD_DISP_SCREEN_F1 | B100000 | Front面:仮想画面1(160×256)、Back面:無し ※このモードの時は、仮想画面2は LCD に表示されないので作業エリアとして使用可能 |
CKLCD_DISP_SCREEN_F2 | B101000 | Front面:仮想画面2(160×128)、Back面:無し ※このモードの時は、仮想画面1は LCD に表示されないので作業エリアとして使用可能 |
CKLCD_DISP_SCREEN_F1_B2 | B100101 | Front面:仮想画面1(160×256)、Back面:仮想画面2(160×128) ※ LCD に表示時にアルファブレンド処理されます |
CKLCD_DISP_SCREEN_F2_B1 | B101100 | Front面:仮想画面2(160×128)、Back面:仮想画面1(160×256) ※ LCD に表示時にアルファブレンド処理されます |
定義 | 値 | コメント |
CKLCD_FLIP_MODE_AUTO | 0x00 | 自動的に flip します。デフォルト設定です。 |
CKLCD_FLIP_MODE_MANU | 0x20 | 自動的に flip しません。ユーザーが明示的に flip() を呼ぶ必要があります。 |
名称 | 16bit長 | 32bit長 | コメント |
絶対色(ARGB4444) | AAAARRRRGGGGBBBB | AAAA---- RRRR---- GGGG---- BBBB---- | ※ ARGB4444 は 16bit長のフォーマットの通りですが、32bit長に置き換えると、このような"重み付け"になります |
絶対色 (RGB565) | RRRRRGGGGGGBBBBB | -------- RRRRR--- GGGGGG-- BBBBB--- | ※ RGB565 は 16bit長のフォーマットの通りですが、32bit長に置き換えると、このような"重み付け"になります |
論理色(ARGB8888) | -----無 し----- | AAAAAAAA RRRRRRRR GGGGGGGG BBBBBBBB | ※ ARGB4444 と RGB565 を包括した 32bit長のみのフォーマットです。16bit長は有りません。 |
定義 | 値 | コメント |
CKLCD_FRONT_VP_ALPHA_MASK | 0xF000 | Front面のα成分:4bit長 |
CKLCD_FRONT_VP_RED_MASK | 0x0F00 | Front面の赤成分:4bit長 |
CKLCD_FRONT_VP_GREEN_MASK | 0x00F0 | Front面の緑成分:4bit長 |
CKLCD_FRONT_VP_BLUE_MASK | 0x000F | Front面の青成分:4bit長 |
定義 | 値 | コメント |
CKLCD_BACK_VP_RED_MASK | 0xF800 | Back面の赤成分:5bit長 |
CKLCD_BACK_VP_GREEN_MASK | 0x07E0 | Back面の緑成分:6bit長 |
CKLCD_BACK_VP_BLUE_MASK | 0x001F | Back面の青成分:5bit長 |
定義 | 値 | コメント |
CKLCD_COL32_ALPHA_MASK | 0xFF000000 | 論理色のα成分:8bit長 ※ 絶対色に変換された時は、先頭の 4bit のみ有効 |
CKLCD_COL32_RED_MASK | 0x00FF0000 | 論理色の赤成分:8bit長 ※ 絶対色に変換された時は、先頭の 5bit 乃至 4bit のみ有効 |
CKLCD_COL32_GREEN_MASK | 0x0000FF00 | 論理色の緑成分:8bit長 ※ 絶対色に変換された時は、先頭の 6bit 乃至 4bit のみ有効 |
CKLCD_COL32_BLUE_MASK | 0x000000FF | 論理色の青成分:8bit長 ※ 絶対色に変換された時は、先頭の 5bit 乃至 4bit のみ有効 |
CKLCD_COL32_TRANS | 0x00000000 | 透明の論理色 ※ アルファ値==0 の透明色です。仮想画面が透過モードの時は、このままだと全く LCD に表示されないので、アルファ値(1〜255)を加算する必要があります。 |
CKLCD_COL32_TRANS_RED | 0x00FF0000 | |
CKLCD_COL32_TRANS_GREEN | 0x0000FF00 | |
CKLCD_COL32_TRANS_YELLOW | 0x00FFFF00 | |
CKLCD_COL32_TRANS_BLUE | 0x000000FF | |
CKLCD_COL32_TRANS_MAGENTA | 0x00FF00FF | |
CKLCD_COL32_TRANS_CYAN | 0x0000FFFF | |
CKLCD_COL32_TRANS_WHITE | 0x00FFFFFF | |
CKLCD_COL32_TRANS_DARK_RED | 0x00800000 | |
CKLCD_COL32_TRANS_DARK_GREEN | 0x00008000 | |
CKLCD_COL32_TRANS_DARK_YELLOW | 0x00808000 | |
CKLCD_COL32_TRANS_DARK_BLUE | 0x00000080 | |
CKLCD_COL32_TRANS_DARK_MAGENTA | 0x00800080 | |
CKLCD_COL32_TRANS_DARK_CYAN | 0x00008080 | |
CKLCD_COL32_TRANS_GRAY | 0x00808080 | |
CKLCD_COL32_BLACK | 0xFF000000 | 不透明の論理色 |
CKLCD_COL32_RED | 0xFFFF0000 | |
CKLCD_COL32_GREEN | 0xFF00FF00 | |
CKLCD_COL32_YELLOW | 0xFFFFFF00 | |
CKLCD_COL32_BLUE | 0xFF0000FF | |
CKLCD_COL32_MAGENTA | 0xFFFF00FF | |
CKLCD_COL32_CYAN | 0xFF00FFFF | |
CKLCD_COL32_WHITE | 0xFFFFFFFF | |
CKLCD_COL32_DARK_RED | 0xFF800000 | |
CKLCD_COL32_DARK_GREEN | 0xFF008000 | |
CKLCD_COL32_DARK_YELLOW | 0xFF808000 | |
CKLCD_COL32_DARK_BLUE | 0xFF000080 | |
CKLCD_COL32_DARK_MAGENTA | 0xFF800080 | |
CKLCD_COL32_DARK_CYAN | 0xFF008080 | |
CKLCD_COL32_GRAY | 0xFF808080 |
定義 | 値 | コメント |
CKLCD_VP_COND_OPAQUE | 0x00 | 非透過モード: Back (背景)面は基本的にこの設定になりますが、flip 時に注意する事を条件に setCondition 関数で透過モードに変更する事も可能です。 |
CKLCD_VP_COND_TRANS | 0x04 | 透過モード : Front(前景)面は基本的にこの設定になりますが、flip 時に注意する事を条件に setCondition 関数で非透過モードに変更する事も可能です。 |
定義 | 値 | コメント |
CKLCD_BLEND_OVER | 0x00 | ブレンドせず、上書きします。処理速度は速いです。 |
CKLCD_BLEND_ADD | 0x08 | アルファ値を元に、ブレンド処理します。論理アルファ値==1.0 の時は上書きした時と同じ結果になります。各画素毎に計算するので、処理速度は遅いです。 |
定義 | 値 | コメント |
CKLCD_DRAW_COLOR | 0x00 | setDrawColor 関数の論理色で描画する |
CKLCD_BACK_COLOR | 0x10 | setBackColor 関数の論理色で描画する |
CKLCD_DRAW_NO_FILL | 0x00 | 領域内を塗りつぶさない |
CKLCD_DRAW_FILL | 0x20 | 領域内を塗りつぶす: rect, circle 関数でのみ有効 |
定義 | 値 | コメント | |
CKLCD_LOAD_IMG_TWI_BUFF_SIZE_31 | 0x00 | 31byte長 | TWI 通信時の画像データ転送時の MAX バッファサイズ ※ ただし Arduino の Wire ライブラリのバッファは、コマンドbyte 含めて 32byte までしかなので、31byte のみ指定可能。それ以外を指定すると必ず CKLCD_ERR_TWI_BUFF_FULL エラーになってしまいます |
CKLCD_LOAD_IMG_TWI_BUFF_SIZE_63 | 0x10 | 63byte長 | |
CKLCD_LOAD_IMG_TWI_BUFF_SIZE_95 | 0x20 | 95byte長 | |
CKLCD_LOAD_IMG_TWI_BUFF_SIZE_127 | 0x30 | 127byte長 | |
CKLCD_LOAD_IMG_DISP_ERR_MSG | 0x80 | エラー発生時に (xPos,yPos) の位置に簡易メッセージを表示 |
定義 | 値 | コメント |
CKLCD_CLR_FLG_FLIP | 0x01 | フリップモードが AUTO モードの時、現在の LCD 表示開始座標に従って、全表示領域を flip させます |
CKLCD_CLR_FLG_DISP_START_HOME | 0x02 | LCD 表示開始位置を (0,0) にする |
CKLCD_CLR_FLG_CURSOR_HOME | 0x04 | カーソル位置を (0,0) にする |
モノスペース | (固定幅) | : | 全角文字は同じ幅になるので setCursor関数で指定しやすくなります。 その代わり、文字の間隔があいてしまうので、欧文などの表示が美しくありません。 |
プロポーショナル | (可変幅) | : | 漢字以外の文字が可変幅になり、読みやすくなります。 その代わり、setCursor 関数で指定しづらくなってしまいます。setCursorMin 関数を使用するようにして下さい。 |
定義 | 値 | コメント | |
CKLCD_FONT_TYPE_RUBY_MS | 0x00 | モノスペース (固定幅):8画素固定 | ルビ用フォント:幅は最大8画素で、高さは10画素です。ただし、ASCII、ISO8859-1、ひらがなとカタカナ、一部の記号のみです。 |
CKLCD_FONT_TYPE_RUBY_P | 0x01 | プロポーショナル(可変幅):最大8画素 | |
CKLCD_FONT_TYPE_12px_MS | 0x02 | モノスペース (固定幅):12画素固定 | 12pxフォント:幅は最大12画素で、高さは15画素です。ただし、ASCII、ISO8859-1、ひらがなとカタカナ、一部の記号のみです。 |
CKLCD_FONT_TYPE_12px_P | 0x03 | プロポーショナル(可変幅):最大12画素 | |
CKLCD_FONT_TYPE_MONOSPACED | 0x04 | モノスペース (固定幅):16画素固定 | 標準フォント:幅は最大16画素で、高さは20画素です。JIS 第一水準〜第三水準の全ての文字をサポートしています。 |
CKLCD_FONT_TYPE_PROPORTIONAL | 0x05 | プロポーショナル(可変幅):最大16画素 | |
CKLCD_FONT_TYPE_20px_MS | 0x06 | モノスペース (固定幅):20画素固定 | 20pxフォント:幅は最大20画素で、高さは25画素です。ただし、ASCII、ISO8859-1、極一部の記号のみです。 |
CKLCD_FONT_TYPE_20px_P | 0x07 | プロポーショナル(可変幅):最大20画素 | |
CKLCD_FONT_TYPE_24px_MS | 0x08 | モノスペース (固定幅):24画素固定 | 24pxフォント:幅は最大24画素で、高さは30画素です。ただし、ASCII、ISO8859-1、極一部の記号のみです。 |
CKLCD_FONT_TYPE_24px_P | 0x09 | プロポーショナル(可変幅):最大24画素 | |
CKLCD_FONT_TYPE_28px_MS | 0x0A | モノスペース (固定幅):28画素固定 | 28pxフォント:幅は最大28画素で、高さは35画素です。ただし、ASCII、ISO8859-1、極一部の記号のみです。 |
CKLCD_FONT_TYPE_28px_P | 0x0B | プロポーショナル(可変幅):最大28画素 |
定義 | 値 | コメント |
CKLCD_FONT_ATTR_UNDERLINE | 0x10 | アンダーラインを表示 |
CKLCD_FONT_ATTR_STRIKE | 0x20 | 取消し線を表示 |
CKLCD_FONT_ATTR_INVERTED | 0x40 | 文字色を反転 |
定義 | 値 | コメント |
CKLCD_CURR_FONT_INFO_TYPE | 0 | フォントのタイプ番号:CKLCD_FONT_TYPE_xxx のいずれか |
CKLCD_CURR_FONT_INFO_WIDTH | 1 | フォントの最大幅 |
CKLCD_CURR_FONT_INFO_HEIGHT | 2 | フォントの高さ |
定義 | 値 | コメント |
CKLCD_ENC_UTF8 | 0 | UTF-8 方式 : default |
CKLCD_ENC_UTF16 | 1 | UTF-16 方式 (BOM 自動判別) ※最初に KLCD_UTF16_BOM を送信する必要あり |
CKLCD_ENC_UTF16BE | 2 | UTF-16 方式 (Big Endian 固定) |
CKLCD_ENC_UTF16LE | 3 | UTF-16 方式 (Little Endian 固定) |
CKLCD_ENC_SJIS | 4 | シフトJIS 方式 |
CKLCD_ENC_EUC_JP | 5 | EUC-JP 方式 |
定義 | 値 | コメント |
CKLCD_ERR_NONE | 0 | 正常 |
CKLCD_ERR_TWI_BUFF_FULL | 1 | Wire ライブラリの送信バッファが一杯 |
CKLCD_ERR_TWI_ADDR_NACK | 2 | TWI アドレス送信で NACK が返ってきた |
CKLCD_ERR_TWI_DATA_NACK | 3 | TWI データ送信で NACK が返ってきた |
CKLCD_ERR_TWI_OTHER_ERR | 4 | Wire ライブラリのその他のエラー |
CKLCD_ERR_LOAD_IMG_END | 0x80 | LoadImg の callback 終了 |
CKLCD_ERR_IMG_LOADING | 0x81 | 画像読み込み中:実際はエラーではなく、単なる通知情報 |
CKLCD_ERR_IMG_LOADING_FRAME_END | 0x82 | 画像読み込み中(フレームの終端):実際はエラーではなく、単なる通知情報 |
CKLCD_ERR_IMG_NO_JPG | 0xA0 | JPG: JFIFフォーマットでないJPGデータ |
CKLCD_ERR_JPG_TOO_BIG | 0xA1 | JPG: 1024×1024 画素以上の寸法。メモリ容量の関係で、この寸法以下しか読み込めません。 |
CKLCD_ERR_JPG_INSUF_MEM | 0xA2 | JPG: 処理するためのメモリが足らない(通常発生しないはず) |
CKLCD_ERR_JPG_DATA_ERR | 0xA3 | JPG: 異常なJFIFフォーマット(壊れている?) |
CKLCD_ERR_JPG_INSUF_DATA | 0xA4 | JPG: 画像の大きさに必要な画像データに達する前にデータ終了を検知した:多分、中途半端な画像で途切れているハズ |
CKLCD_ERR_JPG_UNSUP_FMT | 0xA5 | JPG: JFIFフォーマットとしては正しいが、本機ではサポートしていない |
CKLCD_ERR_JPG_UNSUP_PRGRS | 0xA6 | JPG: Progressive JPG は、未サポート |
CKLCD_ERR_IMG_NO_PNG | 0xB0 | PNG: PNGフォーマットでないPNGデータ |
CKLCD_ERR_PNG_TOO_BIG | 0xB1 | PNG: 256×1024 画素以上の寸法。メモリ容量の関係で、この寸法以下しか読み込めません。 |
CKLCD_ERR_PNG_INSUF_MEM | 0xB2 | PNG: 処理するためのメモリが足らない(通常発生しないはず) |
CKLCD_ERR_PNG_DATA_ERR | 0xB3 | PNG: 異常なPNGフォーマット(壊れている?) |
CKLCD_ERR_PNG_INSUF_DATA | 0xB4 | PNG: 画像の大きさに必要な画像データに達する前にデータ終了を検知した:多分、中途半端な画像で途切れているハズ |
CKLCD_ERR_PNG_CHUNK_ERR | 0xB5 | PNG: 異常なPNGフォーマット(壊れている?):チャンクエラー:異常なチャンクや、チャンクの順番がおかしい |
CKLCD_ERR_PNG_CRC_ERR | 0xB6 | PNG: 異常なPNGフォーマット(壊れている?):CRCエラー |
CKLCD_ERR_PNG_IHDR_ERR | 0xB7 | PNG: 異常なPNGフォーマット(壊れている?):IHDR異常 |
CKLCD_ERR_PNG_UNSUP_DEPTH | 0xB8 | PNG: 対応していない色深度。対応しているのは 1/2/4/8 bit深度のみです。16 bit深度の png には非対応です。 |
CKLCD_ERR_PNG_UNSUP_INTERLACE | 0xB9 | PNG: interlace PNG には対応していない |
CKLCD_ERR_PNG_INV_CHAN | 0xBA | PNG: チャンネル数が3でも4でもない:グレースケール画像からカラー画像への変換(といってもRGB同じ値にしてるだけ)に失敗した時に発生する |
CKLCD_ERR_PNG_ZLIB_ERR | 0xBB | PNG: 異常なPNGフォーマット(壊れている?):zlibでエラー |
CKLCD_ERR_PNG_IMG_ERR | 0xBC | PNG: 異常なPNGフォーマット(壊れている?):画像部(IDAT)が異常 |
CKLCD_ERR_PNG_UNKNOWN | 0xBF | PNG: 上記の分類に当てはまらないエラー |
CKLCD_ERR_IMG_NO_GIF | 0xC0 | GIF: GIF87/89フォーマットでないGIFデータ |
CKLCD_ERR_GIF_TOO_BIG | 0xC1 | GIF: 640×1024 画素以上の寸法。メモリ容量の関係で、この寸法以下しか読み込めません。 |
CKLCD_ERR_GIF_INSUF_MEM | 0xC2 | GIF: 処理するためのメモリが足らない(通常発生しないはず) |
CKLCD_ERR_GIF_DATA_ERR | 0xC3 | GIF: 異常なGIF87/89フォーマット(壊れている?) |
CKLCD_ERR_GIF_INSUF_DATA | 0xC4 | GIF: 画像の大きさに必要な画像データに達する前にデータ終了を検知した:多分、中途半端な画像で途切れているハズ |
CKLCD_ERR_GIF_NO_COL_TBL | 0xC5 | GIF: カラーテーブルが無い:異常なGIF87/89フォーマット |
CKLCD_ERR_IMG_NO_BMP | 0xD0 | BMP: 'BM'から開始していないBMPデータ |
CKLCD_ERR_BMP_TOO_BIG | 0xD1 | BMP: 640×1024 画素以上の寸法。メモリ容量の関係で、この寸法以下しか読み込めません。 |
CKLCD_ERR_BMP_INSUF_MEM | 0xD2 | BMP: 処理するためのメモリが足らない(通常発生しないはず) |
CKLCD_ERR_BMP_DATA_ERR | 0xD3 | BMP: 異常なBMPフォーマット(壊れている?) |
CKLCD_ERR_BMP_INSUF_DATA | 0xD4 | BMP: 画像の大きさに必要な画像データに達する前にデータ終了を検知した:多分、中途半端な画像で途切れているハズ |
CKLCD_ERR_BMP_UNSUP_HEAD | 0xD5 | BMP: 対応していないヘッダー。対応しているのは BITMAPINFOHEADER, BITMAPV4HEADER, BITMAPV5HEADER のみです。BITMAPCOREHEADER には非対応です。 |
CKLCD_ERR_BMP_UNSUP_PLANES | 0xD6 | BMP: 対応していないプレーン数。対応しているのは 1 のみです。 |
CKLCD_ERR_BMP_UNSUP_COMP | 0xD7 | BMP: 対応していない圧縮タイプ。対応しているのは BI_RGB, BI_BITFIELDS, BI_ALPHABITFIELDS のみです。RLE圧縮(BI_RLE4/BI_RLE8)には非対応です。 |
CKLCD_ERR_BMP_UNSUP_BITCNT | 0xD8 | BMP: 対応していないBitCount。対応しているのは 1/2/4/8/16/24/32 bpp のみです。 |
CKLCD_ERR_BUSY | 0xF0 | カラー漢字 LCD シールドが Busy なので、要求を処理できない |
CKLCD_ERR_TIME_OUT | 0xF1 | カラー漢字 LCD シールドとの通信がタイムアウトした |
CKLCD_ERR_ABORTED | 0xF2 | ユーザーによって中断された |
CKLCD_ERR_INVALID_STATE | 0xF7 | 不正なステート:例えば、loadXxx() 中で無いのに、CKLCD_CMD_LOAD_IMG_XLAT/CANCEL コマンドを発行した場合 |
CKLCD_ERR_CONFLICT | 0xF8 | 衝突していて解決できない:例えば、copyWithRotate() でコピー元とコピー先が部分的に重なっている場合 |
CKLCD_ERR_SAME | 0xF9 | 同じものを指定した:例えば、copy() でコピー元とコピー先が同一の時 |
CKLCD_ERR_OUT_OF_RANGE | 0xFA | 指定できる範囲から逸脱している |
CKLCD_ERR_INVALID_PARAM | 0xFB | 引数が不正 |
CKLCD_ERR_UNK_CMD | 0xFC | BS21LAB-006 でサポートしていないコマンド |
CKLCD_ERR_NOT_INIT | 0xFD | 初期化されていない |
CKLCD_ERR_UNDEFINED | 0xFE | 未定義エラー |
CKLCD_ERR_UNKNOWN | 0xFF | 原因不明のエラーが発生した |
定義 | 型 | コメント |
errCode_t | uint8_t | エラーコード。CKLCD_ERR_xxx のいずれか。 ※ただの uint8_t と記述するよりも errCode_t と記述した方が、意味が明確になるから。 |
prog_char | char PROGMEM | プログラムメモリ上の文字 ※実際は avr/pgmspace.h で定義されています |
prog_wchar | wchar_t PROGMEM | プログラムメモリ上のワイド文字 ※avr/pgmspace.h で定義されている prog_char のワイド文字版 |
cklcdCol16_t | uint16_t | 絶対色:16bit長 |
cklcdCol32_t | uint32_t | 論理色:32bit長 |
cklcdInvRatio10_t | uint16_t | 逆倍率: 16bit長固定小数点値(Q6.10) |
cklcdBAM10_t | uint16_t | "BAM10"単位: 16bit長だが実際は下位10bitのみ有効。上位6bitは無視される |
cklcdLoadImgCallback_t | errCode_t (*) (uint8_t * buff, uint8_t buff_size, ColorKanjiLCDLoadImgSize * user_def_data) | loadBmp, loadJpg, loadPng, loadGif 関数から呼び出されるユーザー定義 callback 関数 |
cklcdImgFrameCallback_t | errCode_t (*) (ColorKanjiLCDLoadImgSize * user_def_data) | loadGif 関数から呼び出されるユーザー定義 callback 関数 |
定義名 | 定義内容 | コメント |
PSTR(s) | (__extension__({static const char __c[ ] PROGMEM = (s); &__c[0];})) | プログラムメモリ上の文字列 ※実際は avr/pgmspace.h で定義されています。 C++ の標準仕様ではなく Arduino IDE の拡張機能 klcd.print(PSTR("文字列")); という風に使用します |
PWSTR(s) | (__extension__({static const wchar_t __c[ ] PROGMEM = (s); &__c[0];})) | プログラムメモリ上のワイド文字列 ※avr/pgmspace.h の PSTR 定義のワイド文字版 C++ の標準仕様ではなく Arduino IDE の拡張機能 klcd.wprint(PWSTR(L"文字列")); という風に使用します |
CKLCD_COL32_MAKE_ALPHA(a) | ((cklcdCol32_t)((a) & 0xFF) << 24) | |
CKLCD_COL32_MAKE_RED(r) | ((cklcdCol32_t)((r) & 0xFF) << 16) | |
CKLCD_COL32_MAKE_GREEN(g) | ((cklcdCol32_t)((g) & 0xFF) << 8) | |
CKLCD_COL32_MAKE_BLUE(b) | ((cklcdCol32_t)((b) & 0xFF) << 0) | |
CKLCD_COL32_SPLIT_ALPHA(col32) | ((uint8_t)((col32) >> 24)) | |
CKLCD_COL32_SPLIT_RED(col32) | ((uint8_t)((col32) >> 16)) | |
CKLCD_COL32_SPLIT_GREEN(col32) | ((uint8_t)((col32) >> 8)) | |
CKLCD_COL32_SPLIT_BLUE(col32) | ((uint8_t)((col32) >> 0)) |
関数名 | 戻り値 | パラメータ | コメント |
convertWCharToChar | size_t | char * buffer, const wchar_t * wstr | SRAM 上の UTF-16 文字列 wstr を、UTF-8 文字列 buffer に変換します。変換後のバイト数を返します。 |
convertWCharToChar_P | size_t | char * buffer, const prog_wchar * pwstr | プログラムメモリ上の UTF-16 文字列 pwstr を、UTF-8 文字列 buffer に変換します。変換後のバイト数を返します。 |