秋月電子などで販売されているSHARP製HR-TFTモノクロメモリ液晶を、直接駆動するためのライブラリです。 図形、文字列の描画が可能です。 日本語のフォントも内包していますが、FlashサイズやRAMサイズが小さいものだと扱いきれないかもしれません。 既存のライブラリとは違い、貴重なSPIポートを占拠しません。DigitalOut端子3本でSPIモドキを実現しています。 結線方法については、デモプログラムのページをご参照ください。
Dependents: SHARP_MEMORYLCD_WJ
SH_MLCD_J.h
00001 /* Sharp MemoryLCD Graphic Library (with Japanese Font) 00002 * Copyright (c) 2015 Yajirushi(Cursor) 00003 * 00004 * Released under the MIT license 00005 * http://opensource.org/licenses/mit-license.php 00006 * 00007 * Permission is hereby granted, free of charge, to any person obtaining a copy 00008 * of this software and associated documentation files (the "Software"), to deal 00009 * in the Software without restriction, including without limitation the rights 00010 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00011 * copies of the Software, and to permit persons to whom the Software is 00012 * furnished to do so, subject to the following conditions: 00013 * 00014 * The above copyright notice and this permission notice shall be included in 00015 * all copies or substantial portions of the Software. 00016 * 00017 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00018 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00019 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00020 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00021 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00022 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 00023 * THE SOFTWARE. 00024 * ----------------------------------------------------------------- 00025 * M+ BITMAP FONTS 00026 * http://mplus-fonts.osdn.jp/mplus-bitmap-fonts/index.html 00027 * 00028 * LICENSE 00029 * 00030 * These fonts are free software. 00031 * Unlimited permission is granted to use, copy, 00032 * and distribute it, with or without modification, 00033 * either commercially and noncommercially. 00034 * 00035 * THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY. 00036 */ 00037 #include "mbed.h" 00038 00039 #ifndef SH_MLCD_J 00040 #define SH_MLCD_J 00041 00042 //SPIモドキの持ち時間 00043 #define SHMLCD_J_SPIWAIT 1 00044 00045 //MLCDの命令 00046 #define SHMLCD_J_WRITE 0x80 00047 #define SHMLCD_J_COM 0x40 00048 #define SHMLCD_J_CLEAR 0x20 00049 #define SHMLCD_J_DUMMY 0x00 00050 00051 //ピクセルモード 00052 #define SHMLCD_J_BLACK 0 00053 #define SHMLCD_J_ERASE 1 00054 #define SHMLCD_J_INVERT -1 00055 00056 /** シャープ製メモリ液晶用直接駆動ライブラリ 00057 * 00058 * 秋月電子通商などで販売されている、シャープ製メモリ液晶を直接駆動させるためのライブラリです。 00059 * 「みんなのラボ」から販売されている、SRAMを介すもの(メモリ液晶ブレークアウト基板)では動作しません。 00060 * 00061 * 2015年時点で販売されている、同じ駆動方式のLCD一覧:(このライブラリで駆動可能) 00062 * LS010B7DH01, LS013B7DH05, LS013B7DH03, LS027B7DH01A, LS044Q7DH01 00063 * (LS012B7DD01, LS013B7DH06は駆動方式が異なるため使用できません) 00064 * 00065 * Example: 00066 * @code 00067 * //メモリ液晶に様々な図形や文字を表示する 00068 * 00069 * #include "mbed.h" 00070 * #include "SH_MLCD_J.h" 00071 * 00072 * SHMLCD_J mlcd(p26, p25, p24); 00073 * 00074 * int main(){ 00075 * 00076 * wait(20.0); //結線完了までの待ち時間(不要であれば削除) 00077 * 00078 * //初期化(引数にはデータシートに書いてある表示横幅と表示高さを指定する) 00079 * mlcd.init(400, 240); 00080 * 00081 * //四角形(即時描画) 00082 * mlcd.drawRect(15, 15, 20, 20, SHMLCD_J_BLACK, true); 00083 * mlcd.drawRect2(45, 15, 65, 35, SHMLCD_J_BLACK, true); 00084 * mlcd.fillRect(75, 15, 20, 20, SHMLCD_J_BLACK, true); 00085 * mlcd.fill2Point(105, 15, 125, 35, SHMLCD_J_BLACK, true); 00086 * 00087 * //円(あとで描画):第5引数がfalseだと即時描画しない 00088 * mlcd.drawCircle(25, 55, 10, SHMLCD_J_BLACK, false); 00089 * mlcd.fillCircle(55, 55, 10, SHMLCD_J_BLACK, false); 00090 * 00091 * //小さい文字(あとで描画):第5引数がfalseだと即時描画しない 00092 * char str1[] = "small text! 小さい文字は余裕。\n改行も有効です。タブは無理。"; 00093 * mlcd.ws(str1, 10, 80, SHMLCD_J_BLACK, false); 00094 * 00095 * //大きい文字(即時描画):第4引数にズーム倍率(整数)で倍角可能 00096 * char str2[] = "Large Text! 2倍角も余裕。"; 00097 * mlcd.ws(str2, 10, 160, 2, SHMLCD_J_BLACK, true); 00098 * 00099 * wait(3.0); 00100 * 00101 * //表示画素全部更新(ここで円と小さい文字が描画されます) 00102 * mlcd.writeArrayA(); 00103 * 00104 * wait(3.0); 00105 * 00106 * //設定された表示幅と高さを取得 00107 * int width_size = mlcd.getWidth(); 00108 * int height_size = mlcd.getHeight(); 00109 * 00110 * //グリッドを表示 00111 * //垂直線を等間隔にXOR表示(描画はあとで):第4引数は描画モード 00112 * //描画モード(fillCircleはSHMLCD_J_INVERTが使えません): 00113 * // SHMLCD_J_BLACK (0): 黒で描画します 00114 * // SHMLCD_J_ERASE (1): 白で描画します 00115 * // SHMLCD_J_INVERT (-1): 画素を反転(XOR)させます(白なら黒、黒なら白) 00116 * for(int x=10; x<width_size; x+=20){ 00117 * mlcd.drawLine(x, 0, x, height_size-1, SHMLCD_J_INVERT, false); 00118 * } 00119 * //水平線を等間隔にXOR表示(描画はあとで):第4引数は描画モード 00120 * for(int y=10; y<height_size; y+=20){ 00121 * mlcd.drawLine(0, y, width_size-1, y, SHMLCD_J_INVERT, false); 00122 * } 00123 * 00124 * //表示画素特定部分だけ更新:ライン80からライン160まで更新 00125 * mlcd.writeArrayN(80, 160); 00126 * 00127 * wait(3.0); 00128 * 00129 * //表示画素全部更新 00130 * mlcd.writeArrayA(); 00131 * 00132 * } 00133 * @endcode 00134 */ 00135 class SHMLCD_J{ 00136 public: 00137 /** コンストラクタ:SHMLCD_Jクラスのインスタンスを作成します 00138 * 00139 * @param vSCK メモリ液晶のSCK端子に出力するピンを指定 00140 * @param vSI メモリ液晶のSI端子に出力するピンを指定 00141 * @param vCS メモリ液晶のSCS端子に出力するピンを指定 00142 * @param vCOM メモリ液晶のCOM端子に出力するピンを指定 00143 * @param vDISP メモリ液晶のDISP端子に出力するピンを指定 00144 */ 00145 SHMLCD_J(PinName vSCK, PinName vSI, PinName vCS, PinName vCOM, PinName vDISP); 00146 00147 /** コンストラクタ:SHMLCD_Jクラスのインスタンスを作成します 00148 * 00149 * @param vSCK メモリ液晶のSCK端子に出力するピンを管理するDigitalOutポインタを指定 00150 * @param vSI メモリ液晶のSI端子に出力するピンをを管理するDigitalOutポインタを指定 00151 * @param vCS メモリ液晶のSCS端子に出力するピンをを管理するDigitalOutポインタを指定 00152 * @param vCOM メモリ液晶のCOM端子に出力するピンをを管理するDigitalOutポインタを指定 00153 * @param vDISP メモリ液晶のDISP端子に出力するピンをを管理するDigitalOutポインタを指定 00154 * 00155 * Example: 00156 * @code 00157 * #include "mbed.h" 00158 * #include "SH_MLCD_J.h" 00159 * 00160 * DigitalOut i_sck(p26); 00161 * DigitalOut i_si(p25); 00162 * DigitalOut i_cs(p24); 00163 * DigitalOut i_com(p23); 00164 * DigitalOut i_disp(p22); 00165 * 00166 * int main(){ 00167 * SHMLCD_J mlcd(&i_sck, &i_si, &i_cs, &i_com, &i_disp); //<- 先に宣言したものを&(アドレス)で渡す 00168 * mlcd.init(400, 240); 00169 * mlcd.pixel(50, 50); 00170 * } 00171 * @endcode 00172 */ 00173 SHMLCD_J(DigitalOut *vSCK, DigitalOut *vSI, DigitalOut *vCS, DigitalOut *vCOM, DigitalOut *vDISP); 00174 00175 /** コンストラクタ:SHMLCD_Jクラスのインスタンスを作成します(COM端子とDISP端子は使用しません) 00176 * 00177 * @param vSCK メモリ液晶のSCK端子に出力するピンを指定 00178 * @param vSI メモリ液晶のSI端子に出力するピンを指定 00179 * @param vCS メモリ液晶のSCS端子に出力するピンを指定 00180 */ 00181 SHMLCD_J(PinName vSCK, PinName vSI, PinName vCS); 00182 00183 /** コンストラクタ:SHMLCD_Jクラスのインスタンスを作成します(COM端子とDISP端子は使用しません) 00184 * 00185 * @param vSCK メモリ液晶のSCK端子に出力するピンを管理するDigitalOutポインタを指定 00186 * @param vSI メモリ液晶のSI端子に出力するピンをを管理するDigitalOutポインタを指定 00187 * @param vCS メモリ液晶のSCS端子に出力するピンをを管理するDigitalOutポインタを指定 00188 * 00189 * Example: 00190 * @code 00191 * #include "mbed.h" 00192 * #include "SH_MLCD_J.h" 00193 * 00194 * DigitalOut sck(p26); 00195 * DigitalOut si(p25); 00196 * DigitalOut cs(p24); 00197 * 00198 * int main(){ 00199 * SHMLCD_J mlcd(&sck, &si, &cs); //<- 先に宣言したものを&(アドレス)で渡す 00200 * mlcd.init(400, 240); 00201 * mlcd.pixel(50, 50); 00202 * } 00203 * @endcode 00204 */ 00205 SHMLCD_J(DigitalOut *vSCK, DigitalOut *vSI, DigitalOut *vCS); 00206 00207 /** デストラクタ:内部配列と使用した変数を削除します(ユーザーが呼ぶ必要はありません) 00208 */ 00209 ~SHMLCD_J(); 00210 00211 private: 00212 //ディスプレイの幅、高さ 00213 unsigned short _width, _height; 00214 00215 //一行のデータ量(_width / 8) 00216 unsigned char _bytes; 00217 00218 //画素状態記憶用配列 00219 //最大12KByte(400 / 8 * 240 = 12,000) 00220 char *R; 00221 00222 //通信に使用するピン(SPIモドキ) 00223 DigitalOut *pinSCK, *pinSI, *pinSCS; 00224 00225 //外部信号用ピン 00226 DigitalOut *pinCOM, *pinDISP; 00227 bool useEcom, useEdisp; 00228 00229 //COM信号状態 00230 bool comFlag; 00231 00232 //COM信号用タイマー 00233 Ticker comT; 00234 00235 //命令送信フラグ 00236 bool busySPI; 00237 00238 //SPIモドキのコマンド送出 00239 void send_mode(unsigned char val); 00240 void send_addr(unsigned char val); 00241 void send_data(unsigned char val); 00242 00243 public: 00244 /** 初期化:使用する配列や端子の状態を初期化します 00245 * @warning インスタンス1つにつき1回しか呼ばないこと 00246 * 00247 * @param dispWidth メモリ液晶の表示幅をピクセルで指定する 00248 * @param dispHeight メモリ液晶の表示高さをピクセル指定する 00249 * 00250 * @retval true 初期化に成功した 00251 * @retval false 初期化に失敗した(表示幅や高さが間違っている等) 00252 */ 00253 bool init(unsigned short dispWidth, unsigned short dispHeight); 00254 00255 /** 初期化時に指定した表示ピクセル幅を返す 00256 * 00257 * @returns 初期化時に指定した表示ピクセル幅 00258 */ 00259 unsigned short getWidth(); 00260 00261 /** 初期化時に指定した表示ピクセル高さを返す 00262 * 00263 * @returns 初期化時に指定した表示ピクセル高さ 00264 */ 00265 unsigned short getHeight(); 00266 00267 /** 液晶の表示をクリアする:内部画素記憶配列はクリアされない 00268 */ 00269 void clear(); 00270 00271 /** 液晶の表示をクリアする:内部画素記憶配列はクリアされない(clear()のエイリアス) 00272 */ 00273 void cls(); 00274 00275 /** 内部画素記憶配列をクリアする:表示はクリアされない 00276 */ 00277 void clearArray(); 00278 00279 /** 内部画素記憶配列をクリアする:表示はクリアされない(clearArray()のエイリアス) 00280 */ 00281 void cla(); 00282 00283 /** DISP端子をONにする:外部DISP信号を使用しない場合は何も起きない 00284 */ 00285 void dispON(); 00286 00287 /** DISP端子をOFFにする:外部DISP信号を使用しない場合は何も起きない 00288 */ 00289 void dispOFF(); 00290 00291 /** 液晶寿命を延ばすためにCOM信号を反転させる 00292 * 00293 * initの中で自動的にタイマーに登録されるので、ほとんどの場合は呼ぶ必要がない 00294 */ 00295 void invertCOM(); 00296 00297 /** 液晶寿命を延ばすためのCOM信号反転をタイマーに登録して自動的に行う 00298 * 00299 * initの中で自動的に呼ばれるので、ほとんどの場合は呼ぶ必要がない 00300 * 00301 * @param tickTime COM信号反転間隔(秒) 00302 */ 00303 void regCOMTimer(float tickTime=0.25); 00304 00305 /** 液晶寿命を延ばすためのCOM信号反転のタイマーを解除する 00306 */ 00307 void deregCOMTimer(); 00308 00309 /** 内部画素記憶配列の特定の行にデータを上書きする 00310 * 00311 * @param ln 上書きする行(0 から 高さ-1 まで) 00312 * @param data 上書きするデータ 00313 */ 00314 void updateArray1(unsigned char ln, const char *data); 00315 00316 /** 内部画素記憶配列の特定の範囲にデータを上書きする 00317 * 00318 * @param sn 上書きを開始する行(0 から 高さ-1 まで) 00319 * @param en 上書きが終了する行(0 から 高さ-1 まで) 00320 * @param data 上書きするデータ 00321 */ 00322 void updateArrayN(unsigned char sn, unsigned char en, const char *data); 00323 00324 /** 内部画素記憶配列を全て上書きする 00325 * 00326 * @param data 上書きするデータ 00327 */ 00328 void updateArrayA(const char *data); 00329 00330 /** 内部画素記憶配列の特定の行をメモリ液晶に表示する 00331 * 00332 * @param ln 表示する行(0 から 高さ-1 まで) 00333 */ 00334 void writeArray1(unsigned char ln); 00335 00336 /** 内部画素記憶配列の特定の範囲をメモリ液晶に表示する 00337 * 00338 * @param sn 表示したい範囲の開始行(0 から 高さ-1 まで) 00339 * @param sn 表示したい範囲の終了行(0 から 高さ-1 まで) 00340 */ 00341 void writeArrayN(unsigned char sn, unsigned char en); 00342 00343 /** 内部画素記憶配列を全てメモリ液晶に表示する 00344 */ 00345 void writeArrayA(); 00346 00347 /** データをメモリ液晶の特定行に表示する(内部画素記憶配列を介さない) 00348 * 00349 * @param ln 表示する行(0 から 高さ-1 まで) 00350 * @param data 表示するデータ 00351 */ 00352 void write1(unsigned char ln, const char *data); 00353 00354 /** データをメモリ液晶の特定の範囲に表示する(内部画素記憶配列を介さない) 00355 * 00356 * @param sn 表示したい範囲の開始行(0 から 高さ-1 まで) 00357 * @param en 表示したい範囲の終了行(0 から 高さ-1 まで) 00358 * @param data 表示するデータ 00359 */ 00360 void writeN(unsigned char sn, unsigned char en, const char *data); 00361 00362 /** データをメモリ液晶全域に表示する(内部画素記憶配列を介さない) 00363 * 00364 * @param data 表示するデータ 00365 */ 00366 void writeA(const char *data); 00367 00368 /** メモリ液晶の特定の座標に1ピクセルのドットを表示する 00369 * 00370 * @param x X座標(0 から 幅-1 まで) 00371 * @param y Y座標(0 から 高さ-1 まで) 00372 * @param mode 表示モード 00373 * 00374 * @note modeの一覧: 00375 * SHMLCD_J_BLACK (0): 黒く表示する 00376 * SHMLCD_J_ERASE (1): 白く表示する 00377 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00378 * 00379 * @param immidiate 即時描画させる 00380 */ 00381 void pixel(unsigned short x, unsigned short y, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00382 00383 /** メモリ液晶に線を表示する 00384 * 00385 * @param fromX 始点のX座標(0 から 幅-1 まで) 00386 * @param fromY 始点のY座標(0 から 高さ-1 まで) 00387 * @param toX 終点のX座標(0 から 幅-1 まで) 00388 * @param toY 終点のY座標(0 から 高さ-1 まで) 00389 * @param mode 表示モード 00390 * 00391 * @note modeの一覧: 00392 * SHMLCD_J_BLACK (0): 黒く表示する 00393 * SHMLCD_J_ERASE (1): 白く表示する 00394 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00395 * 00396 * @param immidiate 即時描画させる 00397 */ 00398 void drawLine(unsigned short fromX, unsigned short fromY, unsigned short toX, unsigned short toY, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00399 00400 /** メモリ液晶に四角形を表示する 00401 * 00402 * @param left 画面左端からの距離(0 から 幅-1 まで) 00403 * @param top 画面上端からの距離(0 から 高さ-1 まで) 00404 * @param width 四角形の幅 00405 * @param height 四角形の高さ 00406 * @param mode 表示モード 00407 * 00408 * @note modeの一覧: 00409 * SHMLCD_J_BLACK (0): 黒く表示する 00410 * SHMLCD_J_ERASE (1): 白く表示する 00411 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00412 * 00413 * @param immidiate 即時描画させる 00414 */ 00415 void drawRect(unsigned short left, unsigned short top, unsigned short width, unsigned short height, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00416 00417 /** メモリ液晶に四角形を表示する(対角点指定) 00418 * 00419 * @param x1 四角形の左上の点のX座標(0 から 幅-1 まで) 00420 * @param y1 四角形の左上の点のY座標(0 から 高さ-1 まで) 00421 * @param x2 四角形の右下の点のX座標(0 から 幅-1 まで) 00422 * @param y2 四角形の右下の点のY座標(0 から 高さ-1 まで) 00423 * @param mode 表示モード 00424 * 00425 * @note modeの一覧: 00426 * SHMLCD_J_BLACK (0): 黒く表示する 00427 * SHMLCD_J_ERASE (1): 白く表示する 00428 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00429 * 00430 * @param immidiate 即時描画させる 00431 */ 00432 void drawRect2(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00433 00434 /** メモリ液晶に塗りつぶされた四角形を表示する 00435 * 00436 * @param left 画面左端からの距離(0 から 幅-1 まで) 00437 * @param top 画面上端からの距離(0 から 高さ-1 まで) 00438 * @param width 四角形の幅 00439 * @param height 四角形の高さ 00440 * @param mode 表示モード 00441 * 00442 * @note modeの一覧: 00443 * SHMLCD_J_BLACK (0): 黒く表示する 00444 * SHMLCD_J_ERASE (1): 白く表示する 00445 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00446 * 00447 * @param immidiate 即時描画させる 00448 */ 00449 void fillRect(unsigned short left, unsigned short top, unsigned short width, unsigned short height, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00450 00451 /** メモリ液晶に塗りつぶされた四角形を表示する(対角点指定) 00452 * 00453 * @param x1 四角形の左上の点のX座標(0 から 幅-1 まで) 00454 * @param y1 四角形の左上の点のY座標(0 から 高さ-1 まで) 00455 * @param x2 四角形の右下の点のX座標(0 から 幅-1 まで) 00456 * @param y2 四角形の右下の点のY座標(0 から 高さ-1 まで) 00457 * @param mode 表示モード 00458 * 00459 * @note modeの一覧: 00460 * SHMLCD_J_BLACK (0): 黒く表示する 00461 * SHMLCD_J_ERASE (1): 白く表示する 00462 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00463 * 00464 * @param immidiate 即時描画させる 00465 */ 00466 void fill2Point(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00467 00468 /** メモリ液晶に円を表示する 00469 * 00470 * @param centerX 円の中心のX座標(0 から 幅-1 まで) 00471 * @param centerY 円の中心のY座標(0 から 高さ-1 まで) 00472 * @param r 円の半径 00473 * @param mode 表示モード 00474 * 00475 * @note modeの一覧: 00476 * SHMLCD_J_BLACK (0): 黒く表示する 00477 * SHMLCD_J_ERASE (1): 白く表示する 00478 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00479 * 00480 * @param immidiate 即時描画させる 00481 */ 00482 void drawCircle(unsigned short centerX, unsigned short centerY, unsigned short r, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00483 00484 /** メモリ液晶に塗りつぶされた円を表示する 00485 * 00486 * @param centerX 円の中心のX座標(0 から 幅-1 まで) 00487 * @param centerY 円の中心のY座標(0 から 高さ-1 まで) 00488 * @param r 円の半径 00489 * @param mode 表示モード 00490 * 00491 * @note modeの一覧: 00492 * SHMLCD_J_BLACK (0): 黒く表示する 00493 * SHMLCD_J_ERASE (1): 白く表示する 00494 * SHMLCD_J_INVERT (-1): fillCircleは描画方法が特殊なためうまく描画できません 00495 * 00496 * @param immidiate 即時描画させる 00497 */ 00498 void fillCircle(unsigned short centerX, unsigned short centerY, unsigned short r, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00499 00500 /** メモリ液晶に文字を表示する 00501 * 00502 * @param s 表示する文字 00503 * @param x テキストを囲う四角形の左上のX座標 00504 * @param y テキストを囲う四角形の左上のY座標 00505 * @param zoom 拡大倍率 00506 * @param mode 表示モード 00507 * 00508 * @note modeの一覧: 00509 * SHMLCD_J_BLACK (0): 黒く表示する 00510 * SHMLCD_J_ERASE (1): 白く表示する 00511 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00512 * 00513 * @param immidiate 即時描画させる 00514 * 00515 * @retval -1 表示できなかった 00516 * @retval 0以上 文字のバイトサイズ 00517 */ 00518 signed char drawChar(const char *s, unsigned short x, unsigned short y, unsigned char zoom, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00519 00520 /** メモリ液晶に文字列を表示する 00521 * 00522 * @param str 表示する文字列 00523 * @param x テキストを囲う四角形の左上のX座標 00524 * @param y テキストを囲う四角形の左上のY座標 00525 * @param zoom 拡大倍率 00526 * @param mode 表示モード 00527 * 00528 * @note modeの一覧: 00529 * SHMLCD_J_BLACK (0): 黒く表示する 00530 * SHMLCD_J_ERASE (1): 白く表示する 00531 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00532 * 00533 * @param immidiate 即時描画させる 00534 * 00535 * @retval -1 表示できなかった 00536 * @retval 1 表示できた 00537 */ 00538 signed char writeString(const char *str, unsigned short x, unsigned short y, unsigned char zoom, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00539 00540 /** メモリ液晶に文字列を表示する 00541 * 00542 * @param str 表示する文字列 00543 * @param x テキストを囲う四角形の左上のX座標 00544 * @param y テキストを囲う四角形の左上のY座標 00545 * @param mode 表示モード 00546 * 00547 * @note modeの一覧: 00548 * SHMLCD_J_BLACK (0): 黒く表示する 00549 * SHMLCD_J_ERASE (1): 白く表示する 00550 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00551 * 00552 * @param immidiate 即時描画させる 00553 * 00554 * @retval -1 表示できなかった 00555 * @retval 1 表示できた 00556 */ 00557 signed char writeString(const char *str, unsigned short x, unsigned short y, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00558 00559 /** メモリ液晶に文字列を表示する(writeStringのエイリアス) 00560 * 00561 * @param str 表示する文字列 00562 * @param x テキストを囲う四角形の左上のX座標 00563 * @param y テキストを囲う四角形の左上のY座標 00564 * @param zoom 拡大倍率 00565 * @param mode 表示モード 00566 * 00567 * @note modeの一覧: 00568 * SHMLCD_J_BLACK (0): 黒く表示する 00569 * SHMLCD_J_ERASE (1): 白く表示する 00570 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00571 * 00572 * @param immidiate 即時描画させる 00573 * 00574 * @retval -1 表示できなかった 00575 * @retval 1 表示できた 00576 */ 00577 signed char ws(const char *str, unsigned short x, unsigned short y, unsigned char zoom, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00578 00579 /** メモリ液晶に文字列を表示する(writeStringのエイリアス) 00580 * 00581 * @param str 表示する文字列 00582 * @param x テキストを囲う四角形の左上のX座標 00583 * @param y テキストを囲う四角形の左上のY座標 00584 * @param mode 表示モード 00585 * 00586 * @note modeの一覧: 00587 * SHMLCD_J_BLACK (0): 黒く表示する 00588 * SHMLCD_J_ERASE (1): 白く表示する 00589 * SHMLCD_J_INVERT (-1): 画素を逆転させる(黒なら白、白なら黒) 00590 * 00591 * @param immidiate 即時描画させる 00592 * 00593 * @retval -1 表示できなかった 00594 * @retval 1 表示できた 00595 */ 00596 signed char ws(const char *str, unsigned short x, unsigned short y, signed char mode=SHMLCD_J_BLACK, bool immidiate=true); 00597 }; 00598 00599 #endif
Generated on Tue Jul 12 2022 20:44:18 by 1.7.2