first commit

Dependents:   Aitendo_2P-REL225L01

Committer:
og
Date:
Fri Sep 30 13:24:12 2016 +0000
Revision:
0:d5aa6eeefe77
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
og 0:d5aa6eeefe77 1 #include "LCD192GC00.h"
og 0:d5aa6eeefe77 2 #include "ASCII12dot.h" //ASCII 12x12dot
og 0:d5aa6eeefe77 3
og 0:d5aa6eeefe77 4 LCD192GC00::LCD192GC00(
og 0:d5aa6eeefe77 5 PinName rd, PinName wr, PinName rs, PinName cs, PinName rst,
og 0:d5aa6eeefe77 6 PinName d0, PinName d1, PinName d2, PinName d3,
og 0:d5aa6eeefe77 7 PinName d4, PinName d5, PinName d6, PinName d7
og 0:d5aa6eeefe77 8 ):
og 0:d5aa6eeefe77 9 _rd(rd), _wr(wr), _rs(rs), _cs(cs), _rst(rst),
og 0:d5aa6eeefe77 10 _d(d0, d1, d2, d3, d4, d5, d6, d7)
og 0:d5aa6eeefe77 11 {
og 0:d5aa6eeefe77 12
og 0:d5aa6eeefe77 13 _rd=1;
og 0:d5aa6eeefe77 14 _wr=1;
og 0:d5aa6eeefe77 15 _rs=1;
og 0:d5aa6eeefe77 16 _cs=1;
og 0:d5aa6eeefe77 17 _rst = 1;
og 0:d5aa6eeefe77 18
og 0:d5aa6eeefe77 19 }
og 0:d5aa6eeefe77 20
og 0:d5aa6eeefe77 21 void LCD192GC00::_write(uint8_t rs, uint8_t d){
og 0:d5aa6eeefe77 22 _cs=0;
og 0:d5aa6eeefe77 23 _rd=1;
og 0:d5aa6eeefe77 24 _rs=rs;
og 0:d5aa6eeefe77 25
og 0:d5aa6eeefe77 26 _d.output();
og 0:d5aa6eeefe77 27 _d=d;
og 0:d5aa6eeefe77 28 _wr=0;
og 0:d5aa6eeefe77 29 //_delay(1);
og 0:d5aa6eeefe77 30 _wr=1;
og 0:d5aa6eeefe77 31
og 0:d5aa6eeefe77 32 _cs=1;
og 0:d5aa6eeefe77 33 }
og 0:d5aa6eeefe77 34
og 0:d5aa6eeefe77 35 void LCD192GC00::lcd_Init(){
og 0:d5aa6eeefe77 36 wait_ms(20);
og 0:d5aa6eeefe77 37 _rd = 1;
og 0:d5aa6eeefe77 38 _cs = 1; // CS High
og 0:d5aa6eeefe77 39 _wr = 1; // WR High
og 0:d5aa6eeefe77 40 _rst = 0; // Reset LCD
og 0:d5aa6eeefe77 41 wait_ms(0x10); // 1msec wait
og 0:d5aa6eeefe77 42 _rst = 1; // Clear RESET
og 0:d5aa6eeefe77 43 wait_ms(25); // 100msec wait
og 0:d5aa6eeefe77 44
og 0:d5aa6eeefe77 45 lcd_cmd(0xB0);
og 0:d5aa6eeefe77 46 lcd_data(0xCA);
og 0:d5aa6eeefe77 47 lcd_data(0x90);
og 0:d5aa6eeefe77 48 lcd_data(0x37);
og 0:d5aa6eeefe77 49 lcd_data(0x01);
og 0:d5aa6eeefe77 50 lcd_data(0x48);
og 0:d5aa6eeefe77 51 lcd_data(0x01);
og 0:d5aa6eeefe77 52 lcd_data(0x40);
og 0:d5aa6eeefe77 53 lcd_data(0x04);
og 0:d5aa6eeefe77 54 lcd_data(0x00);
og 0:d5aa6eeefe77 55 lcd_data(0x00);
og 0:d5aa6eeefe77 56
og 0:d5aa6eeefe77 57 lcd_cmd(0x26);
og 0:d5aa6eeefe77 58 lcd_data(0x01);
og 0:d5aa6eeefe77 59
og 0:d5aa6eeefe77 60 lcd_cmd(0xB1);
og 0:d5aa6eeefe77 61 lcd_data(0x00);
og 0:d5aa6eeefe77 62 lcd_data(0x00);
og 0:d5aa6eeefe77 63 lcd_data(0x00);
og 0:d5aa6eeefe77 64 lcd_data(0x00);
og 0:d5aa6eeefe77 65 lcd_data(0x08);
og 0:d5aa6eeefe77 66 lcd_data(0x00);
og 0:d5aa6eeefe77 67 lcd_data(0x04);
og 0:d5aa6eeefe77 68 lcd_data(0x10);
og 0:d5aa6eeefe77 69 lcd_data(0x48);
og 0:d5aa6eeefe77 70 lcd_data(0x82);
og 0:d5aa6eeefe77 71 lcd_data(0x20);
og 0:d5aa6eeefe77 72 lcd_data(0x84);
og 0:d5aa6eeefe77 73 lcd_data(0x92);
og 0:d5aa6eeefe77 74 lcd_data(0x2A);
og 0:d5aa6eeefe77 75 lcd_data(0x52);
og 0:d5aa6eeefe77 76 lcd_data(0xAA);
og 0:d5aa6eeefe77 77 lcd_data(0x5A);
og 0:d5aa6eeefe77 78 lcd_data(0x55);
og 0:d5aa6eeefe77 79 lcd_data(0x2A);
og 0:d5aa6eeefe77 80 lcd_data(0x55);
og 0:d5aa6eeefe77 81 lcd_data(0xAE);
og 0:d5aa6eeefe77 82 lcd_data(0xFF);
og 0:d5aa6eeefe77 83 lcd_data(0xFE);
og 0:d5aa6eeefe77 84 lcd_data(0x00);
og 0:d5aa6eeefe77 85 lcd_data(0x00);
og 0:d5aa6eeefe77 86 lcd_data(0x00);
og 0:d5aa6eeefe77 87 lcd_data(0x00);
og 0:d5aa6eeefe77 88 lcd_data(0x00);
og 0:d5aa6eeefe77 89 lcd_data(0x00);
og 0:d5aa6eeefe77 90 lcd_data(0x04);
og 0:d5aa6eeefe77 91
og 0:d5aa6eeefe77 92 lcd_cmd(0xB2);
og 0:d5aa6eeefe77 93 lcd_data(0x00);
og 0:d5aa6eeefe77 94 lcd_data(0x00);
og 0:d5aa6eeefe77 95 lcd_data(0x00);
og 0:d5aa6eeefe77 96 lcd_data(0x00);
og 0:d5aa6eeefe77 97 lcd_data(0x04);
og 0:d5aa6eeefe77 98 lcd_data(0x00);
og 0:d5aa6eeefe77 99 lcd_data(0x02);
og 0:d5aa6eeefe77 100 lcd_data(0x08);
og 0:d5aa6eeefe77 101 lcd_data(0x48);
og 0:d5aa6eeefe77 102 lcd_data(0x82);
og 0:d5aa6eeefe77 103 lcd_data(0x20);
og 0:d5aa6eeefe77 104 lcd_data(0x84);
og 0:d5aa6eeefe77 105 lcd_data(0x42);
og 0:d5aa6eeefe77 106 lcd_data(0x48);
og 0:d5aa6eeefe77 107 lcd_data(0x92);
og 0:d5aa6eeefe77 108 lcd_data(0x2A);
og 0:d5aa6eeefe77 109 lcd_data(0x52);
og 0:d5aa6eeefe77 110 lcd_data(0xAA);
og 0:d5aa6eeefe77 111 lcd_data(0x5A);
og 0:d5aa6eeefe77 112 lcd_data(0x55);
og 0:d5aa6eeefe77 113 lcd_data(0x2A);
og 0:d5aa6eeefe77 114 lcd_data(0x55);
og 0:d5aa6eeefe77 115 lcd_data(0xAE);
og 0:d5aa6eeefe77 116 lcd_data(0xFF);
og 0:d5aa6eeefe77 117 lcd_data(0xFE);
og 0:d5aa6eeefe77 118 lcd_data(0x00);
og 0:d5aa6eeefe77 119 lcd_data(0x00);
og 0:d5aa6eeefe77 120 lcd_data(0x00);
og 0:d5aa6eeefe77 121 lcd_data(0x00);
og 0:d5aa6eeefe77 122 lcd_data(0x00);
og 0:d5aa6eeefe77 123 lcd_data(0x00);
og 0:d5aa6eeefe77 124 lcd_data(0x04);
og 0:d5aa6eeefe77 125
og 0:d5aa6eeefe77 126 lcd_cmd(MODE); // Entry Mode
og 0:d5aa6eeefe77 127 lcd_data(0x29);
og 0:d5aa6eeefe77 128 //color mode
og 0:d5aa6eeefe77 129 lcd_cmd(COLMOD);
og 0:d5aa6eeefe77 130 lcd_data(0x05); //65k color
og 0:d5aa6eeefe77 131 //Inteface mode
og 0:d5aa6eeefe77 132 lcd_cmd(IFMOD);
og 0:d5aa6eeefe77 133 lcd_data(0x00); //8bit mode
og 0:d5aa6eeefe77 134
og 0:d5aa6eeefe77 135
og 0:d5aa6eeefe77 136 lcd_cmd(0xBA);
og 0:d5aa6eeefe77 137 lcd_data(0x55);
og 0:d5aa6eeefe77 138 lcd_data(0x55);
og 0:d5aa6eeefe77 139 lcd_data(0x55);
og 0:d5aa6eeefe77 140 lcd_data(0x55);
og 0:d5aa6eeefe77 141 lcd_data(0x55);
og 0:d5aa6eeefe77 142 lcd_data(0x55);
og 0:d5aa6eeefe77 143 lcd_data(0x55);
og 0:d5aa6eeefe77 144 lcd_data(0x55);
og 0:d5aa6eeefe77 145 lcd_data(0x55);
og 0:d5aa6eeefe77 146 lcd_data(0x55);
og 0:d5aa6eeefe77 147 lcd_data(0x55);
og 0:d5aa6eeefe77 148 lcd_data(0x55);
og 0:d5aa6eeefe77 149 lcd_data(0x55);
og 0:d5aa6eeefe77 150 lcd_data(0x55);
og 0:d5aa6eeefe77 151 lcd_data(0x55);
og 0:d5aa6eeefe77 152 lcd_data(0x55);
og 0:d5aa6eeefe77 153 lcd_data(0x55);
og 0:d5aa6eeefe77 154 lcd_data(0x55);
og 0:d5aa6eeefe77 155 lcd_data(0x55);
og 0:d5aa6eeefe77 156 lcd_data(0x55);
og 0:d5aa6eeefe77 157 lcd_data(0x55);
og 0:d5aa6eeefe77 158 lcd_data(0x55);
og 0:d5aa6eeefe77 159 lcd_data(0x55);
og 0:d5aa6eeefe77 160 lcd_data(0x55);
og 0:d5aa6eeefe77 161 lcd_data(0x55);
og 0:d5aa6eeefe77 162 lcd_data(0x55);
og 0:d5aa6eeefe77 163 lcd_data(0x55);
og 0:d5aa6eeefe77 164 lcd_data(0x55);
og 0:d5aa6eeefe77 165 lcd_data(0x55);
og 0:d5aa6eeefe77 166 lcd_data(0x55);
og 0:d5aa6eeefe77 167 lcd_data(0x55);
og 0:d5aa6eeefe77 168 lcd_data(0x55);
og 0:d5aa6eeefe77 169 lcd_data(0x55);
og 0:d5aa6eeefe77 170 lcd_data(0x55);
og 0:d5aa6eeefe77 171 lcd_data(0x55);
og 0:d5aa6eeefe77 172 lcd_data(0x55);
og 0:d5aa6eeefe77 173 lcd_data(0x55);
og 0:d5aa6eeefe77 174 lcd_data(0x55);
og 0:d5aa6eeefe77 175 lcd_data(0x55);
og 0:d5aa6eeefe77 176 lcd_data(0x55);
og 0:d5aa6eeefe77 177 lcd_data(0x55);
og 0:d5aa6eeefe77 178 lcd_data(0x55);
og 0:d5aa6eeefe77 179 lcd_data(0x55);
og 0:d5aa6eeefe77 180 lcd_data(0x55);
og 0:d5aa6eeefe77 181 lcd_data(0x55);
og 0:d5aa6eeefe77 182 lcd_data(0x55);
og 0:d5aa6eeefe77 183 lcd_data(0x55);
og 0:d5aa6eeefe77 184
og 0:d5aa6eeefe77 185
og 0:d5aa6eeefe77 186 //
og 0:d5aa6eeefe77 187 lcd_cmd(SLPOUT);
og 0:d5aa6eeefe77 188 lcd_cmd(DISON); // 表示オン
og 0:d5aa6eeefe77 189 };
og 0:d5aa6eeefe77 190
og 0:d5aa6eeefe77 191 void LCD192GC00::lcd_Clear(unsigned short Color){
og 0:d5aa6eeefe77 192 int i, j;
og 0:d5aa6eeefe77 193
og 0:d5aa6eeefe77 194 lcd_cmd(PASET); // ページ開始終了アドレスセット
og 0:d5aa6eeefe77 195 lcd_data(0);
og 0:d5aa6eeefe77 196 lcd_data(0x0C);
og 0:d5aa6eeefe77 197 lcd_data((unsigned char)((ENDPAGE+0x0C)>>8));
og 0:d5aa6eeefe77 198 lcd_data((unsigned char)(ENDPAGE+0x0C));
og 0:d5aa6eeefe77 199 lcd_cmd(CASET); // コラム開始、終了アドレスセット
og 0:d5aa6eeefe77 200 lcd_data(0);
og 0:d5aa6eeefe77 201 lcd_data(0x08);
og 0:d5aa6eeefe77 202 lcd_data((unsigned char)((ENDCOL+0x08)>>8));
og 0:d5aa6eeefe77 203 lcd_data((unsigned char)(ENDCOL+0x08));
og 0:d5aa6eeefe77 204 lcd_cmd(RAMWR);
og 0:d5aa6eeefe77 205 for(j=0; j<4; j++){
og 0:d5aa6eeefe77 206 for(i=0; i<(ENDCOL+1)*80; i++){
og 0:d5aa6eeefe77 207 lcd_data((unsigned char)(Color>>8));
og 0:d5aa6eeefe77 208 lcd_data((unsigned char)Color);
og 0:d5aa6eeefe77 209 }
og 0:d5aa6eeefe77 210 }
og 0:d5aa6eeefe77 211 }
og 0:d5aa6eeefe77 212
og 0:d5aa6eeefe77 213 /***********************************
og 0:d5aa6eeefe77 214 * 1ピクセル表示関数
og 0:d5aa6eeefe77 215 * 座標は(0,0)-(161,131)
og 0:d5aa6eeefe77 216 ***********************************/
og 0:d5aa6eeefe77 217 void LCD192GC00::lcd_Pixel(short Xpos, short Ypos, unsigned short Color){
og 0:d5aa6eeefe77 218
og 0:d5aa6eeefe77 219 if((Xpos<=ENDCOL) && (Ypos<=ENDPAGE)){
og 0:d5aa6eeefe77 220 Xpos += 0x08;
og 0:d5aa6eeefe77 221 Ypos += 0x0C;
og 0:d5aa6eeefe77 222 lcd_cmd(PASET); // 行(RAW)アドレスセット
og 0:d5aa6eeefe77 223 lcd_data(Ypos>>8);
og 0:d5aa6eeefe77 224 lcd_data(Ypos);
og 0:d5aa6eeefe77 225 lcd_data(Ypos>>8);
og 0:d5aa6eeefe77 226 lcd_data(Ypos);
og 0:d5aa6eeefe77 227 lcd_cmd(CASET); // 列(COLUM)アドレスセット
og 0:d5aa6eeefe77 228 lcd_data((unsigned char)((Xpos)>>8));
og 0:d5aa6eeefe77 229 lcd_data((unsigned char)(Xpos));
og 0:d5aa6eeefe77 230 lcd_data((unsigned char)(Xpos>>8));
og 0:d5aa6eeefe77 231 lcd_data((unsigned char)(Xpos));
og 0:d5aa6eeefe77 232 lcd_cmd(RAMWR); // 1ピクセル書き込み
og 0:d5aa6eeefe77 233 lcd_data(Color >> 8); // 16ビットカラー
og 0:d5aa6eeefe77 234 lcd_data(Color);
og 0:d5aa6eeefe77 235 }
og 0:d5aa6eeefe77 236 }
og 0:d5aa6eeefe77 237
og 0:d5aa6eeefe77 238 /***************************
og 0:d5aa6eeefe77 239 * 直線描画関数
og 0:d5aa6eeefe77 240 ***************************/
og 0:d5aa6eeefe77 241 #define abs(a) (((a)>0) ? (a) : -(a))
og 0:d5aa6eeefe77 242 void LCD192GC00::lcd_Line(short x0, short y0, short x1, short y1, unsigned short Color)
og 0:d5aa6eeefe77 243 {
og 0:d5aa6eeefe77 244 short steep, t;
og 0:d5aa6eeefe77 245 short deltax, deltay, error;
og 0:d5aa6eeefe77 246 short x, y;
og 0:d5aa6eeefe77 247 short ystep;
og 0:d5aa6eeefe77 248
og 0:d5aa6eeefe77 249 y0=ENDPAGE-y0; // Y座標反転
og 0:d5aa6eeefe77 250 y1=ENDPAGE-y1;
og 0:d5aa6eeefe77 251 /// 差分の大きいほうを求める
og 0:d5aa6eeefe77 252 steep = (abs(y1 - y0) > abs(x1 - x0));
og 0:d5aa6eeefe77 253 /// x、yの入れ替え
og 0:d5aa6eeefe77 254 if(steep){
og 0:d5aa6eeefe77 255 t = x0; x0 = y0; y0 = t;
og 0:d5aa6eeefe77 256 t = x1; x1 = y1; y1 = t;
og 0:d5aa6eeefe77 257 }
og 0:d5aa6eeefe77 258 if(x0 > x1) {
og 0:d5aa6eeefe77 259 t = x0; x0 = x1; x1 = t;
og 0:d5aa6eeefe77 260 t = y0; y0 = y1; y1 = t;
og 0:d5aa6eeefe77 261 }
og 0:d5aa6eeefe77 262 deltax = x1 - x0; // 傾き計算
og 0:d5aa6eeefe77 263 deltay = abs(y1 - y0);
og 0:d5aa6eeefe77 264 error = 0;
og 0:d5aa6eeefe77 265 y = y0;
og 0:d5aa6eeefe77 266 /// 傾きでステップの正負を切り替え
og 0:d5aa6eeefe77 267 if(y0 < y1) ystep = 1; else ystep = -1;
og 0:d5aa6eeefe77 268 /// 直線を点で描画
og 0:d5aa6eeefe77 269 for(x=x0; x<x1; x++) {
og 0:d5aa6eeefe77 270 if(steep) lcd_Pixel(y,x,Color); else lcd_Pixel(x,y,Color);
og 0:d5aa6eeefe77 271 error += deltay;
og 0:d5aa6eeefe77 272 if((error << 1) >= deltax) {
og 0:d5aa6eeefe77 273 y += ystep;
og 0:d5aa6eeefe77 274 error -= deltax;
og 0:d5aa6eeefe77 275 }
og 0:d5aa6eeefe77 276 }
og 0:d5aa6eeefe77 277 }
og 0:d5aa6eeefe77 278 /*****************************************
og 0:d5aa6eeefe77 279 * ANK文字表示関数 12x12ドット
og 0:d5aa6eeefe77 280 * 320/12=26文字/行 240/14=17行
og 0:d5aa6eeefe77 281 * (0, 0) - (25, 16)の範囲
og 0:d5aa6eeefe77 282 ******************************************/
og 0:d5aa6eeefe77 283 void LCD192GC00::lcd_Char(char colum, char line, unsigned char letter, unsigned short Color1, unsigned short Color2){
og 0:d5aa6eeefe77 284 unsigned char j, i, Mask;
og 0:d5aa6eeefe77 285
og 0:d5aa6eeefe77 286 if((colum < XChar) && (line < YLine)){ // 範囲チェック
og 0:d5aa6eeefe77 287 // ANK表示出力 3バイトの2ラインずつを6回繰り返す
og 0:d5aa6eeefe77 288 for(j=0; j<6; j++){
og 0:d5aa6eeefe77 289 // 8ドット連続部の表示
og 0:d5aa6eeefe77 290 Mask = 0x80;
og 0:d5aa6eeefe77 291 for(i=0; i<8; i++){
og 0:d5aa6eeefe77 292 // 1ライン目前半8ドット表示
og 0:d5aa6eeefe77 293 if((ANKFont[letter][j*3] & Mask) != 0)
og 0:d5aa6eeefe77 294 lcd_Pixel(colum*12+i, line*14+j*2, Color1);
og 0:d5aa6eeefe77 295 else
og 0:d5aa6eeefe77 296 lcd_Pixel(colum*12+i, line*14+j*2, Color2); //背景色
og 0:d5aa6eeefe77 297 // 2ライン目後半8ドット表示
og 0:d5aa6eeefe77 298 if((ANKFont[letter][j*3+2] & Mask) != 0)
og 0:d5aa6eeefe77 299 lcd_Pixel(colum*12+i+4, line*14+j*2+1, Color1);
og 0:d5aa6eeefe77 300 else
og 0:d5aa6eeefe77 301 lcd_Pixel(colum*12+i+4, line*14+j*2+1, Color2); //背景色
og 0:d5aa6eeefe77 302 Mask = Mask >> 1;
og 0:d5aa6eeefe77 303 }
og 0:d5aa6eeefe77 304 // 分割部4ドットずつ表示
og 0:d5aa6eeefe77 305 Mask = 0x80;
og 0:d5aa6eeefe77 306 // 1ライン目後半4ドット表示
og 0:d5aa6eeefe77 307 for(i=0; i<4; i++){
og 0:d5aa6eeefe77 308 if((ANKFont[letter][j*3+1] & Mask) != 0)
og 0:d5aa6eeefe77 309 lcd_Pixel(colum*12+i+8, line*14+j*2, Color1);
og 0:d5aa6eeefe77 310 else
og 0:d5aa6eeefe77 311 lcd_Pixel(colum*12+i+8, line*14+j*2, Color2); //背景色
og 0:d5aa6eeefe77 312 Mask = Mask >> 1;
og 0:d5aa6eeefe77 313 }
og 0:d5aa6eeefe77 314 // 2ライン目前半4ドット表示
og 0:d5aa6eeefe77 315 for(i=4; i<8; i++){
og 0:d5aa6eeefe77 316 if((ANKFont[letter][j*3+1] & Mask) != 0)
og 0:d5aa6eeefe77 317 lcd_Pixel(colum*12+i-4, line*14+j*2+1, Color1);
og 0:d5aa6eeefe77 318 else
og 0:d5aa6eeefe77 319 lcd_Pixel(colum*12+i-4, line*14+j*2+1, Color2); //背景色
og 0:d5aa6eeefe77 320 Mask = Mask >> 1;
og 0:d5aa6eeefe77 321 }
og 0:d5aa6eeefe77 322 }
og 0:d5aa6eeefe77 323 }
og 0:d5aa6eeefe77 324 }
og 0:d5aa6eeefe77 325 /******************************
og 0:d5aa6eeefe77 326 * 文字列描画関数
og 0:d5aa6eeefe77 327 * 16文字x20行で指定
og 0:d5aa6eeefe77 328 ******************************/
og 0:d5aa6eeefe77 329 void LCD192GC00::lcd_Str(char colum, char line, char *s, unsigned short Color1, unsigned short Color2)
og 0:d5aa6eeefe77 330 {
og 0:d5aa6eeefe77 331 while (*s){
og 0:d5aa6eeefe77 332 lcd_Char(colum++, line, *s++, Color1, Color2);
og 0:d5aa6eeefe77 333 if(colum >= XChar){
og 0:d5aa6eeefe77 334 line++;
og 0:d5aa6eeefe77 335 colum = 0;
og 0:d5aa6eeefe77 336 if(line >= YLine)
og 0:d5aa6eeefe77 337 line = 0;
og 0:d5aa6eeefe77 338 }
og 0:d5aa6eeefe77 339 }
og 0:d5aa6eeefe77 340 }
og 0:d5aa6eeefe77 341
og 0:d5aa6eeefe77 342 /*********************************************************
og 0:d5aa6eeefe77 343 * イメージ表示関数
og 0:d5aa6eeefe77 344 *  データは縦方向8ライン分が1バイトで格納されている
og 0:d5aa6eeefe77 345 * 128×128/8=2kバイト/画面
og 0:d5aa6eeefe77 346 * グラフィック色(Color1)と背景色(Color2)両方を指定
og 0:d5aa6eeefe77 347 **********************************************************/
og 0:d5aa6eeefe77 348 void LCD192GC00::lcd_Image(char line, const unsigned char *ptr, unsigned short Color1, unsigned Color2)
og 0:d5aa6eeefe77 349 {
og 0:d5aa6eeefe77 350 unsigned char Mask;
og 0:d5aa6eeefe77 351 short i, vline, colum;
og 0:d5aa6eeefe77 352
og 0:d5aa6eeefe77 353
og 0:d5aa6eeefe77 354 for(vline=line; vline<line+8; vline++){ // 全体は8行×8=64ライン
og 0:d5aa6eeefe77 355 for(colum=0; colum<128; colum++){ // 横は128ドットとする
og 0:d5aa6eeefe77 356 Mask = 0x01; // 下位ビットが上側
og 0:d5aa6eeefe77 357 for(i=0; i<8; i++){ // 1バイト分処理
og 0:d5aa6eeefe77 358 if(*ptr & Mask) // ビットチェック
og 0:d5aa6eeefe77 359 lcd_Pixel(colum+2, vline*8+i+1, Color1);
og 0:d5aa6eeefe77 360 else
og 0:d5aa6eeefe77 361 lcd_Pixel(colum+2,vline*8+i+1, Color2);
og 0:d5aa6eeefe77 362 Mask = Mask << 1; // ビット位置シフト
og 0:d5aa6eeefe77 363 }
og 0:d5aa6eeefe77 364 ptr++; // 次のデータ
og 0:d5aa6eeefe77 365 }
og 0:d5aa6eeefe77 366 }
og 0:d5aa6eeefe77 367 }
og 0:d5aa6eeefe77 368
og 0:d5aa6eeefe77 369 void LCD192GC00::_delay(uint16_t t)
og 0:d5aa6eeefe77 370 {
og 0:d5aa6eeefe77 371 };