/************************************************************** * カラーグラフィックLCD(240x320ドット)用ライブラリ * 横表示で設定 * * 後閑氏作成ライブラリより、lcd_Char();// ANK文字表示関数抜粋 * * Original : Mr.Gokan (CPU;dsPIC33FJ64GP802) ***************************************************************/ #include "ASCII12dot.h" //ASCII 12x12dot /***************************************** * ANK文字表示関数 12x12ドット * 320/12=26文字/行 240/14=17行 * (0, 0) - (25, 16)の範囲 ******************************************/ void lcd_Char(char colum, char line, unsigned char letter, unsigned short Color1, unsigned short Color2){ unsigned char j, i, Mask; if((colum < XChar) && (line < YLine)){ // 範囲チェック // ANK表示出力 3バイトの2ラインずつを6回繰り返す for(j=0; j<6; j++){ // 8ドット連続部の表示 Mask = 0x80; for(i=0; i<8; i++){ // 1ライン目前半8ドット表示 if((ANKFont[letter][j*3] & Mask) != 0) lcd_Pixel(colum*12+i+4, line*14+j*2+2, Color1); else lcd_Pixel(colum*12+i+4, line*14+j*2+2, Color2); //背景色 // 2ライン目後半8ドット表示 if((ANKFont[letter][j*3+2] & Mask) != 0) lcd_Pixel(colum*12+i+8, line*14+j*2+3, Color1); else lcd_Pixel(colum*12+i+8, line*14+j*2+3, Color2); //背景色 Mask = Mask >> 1; } // 分割部4ドットずつ表示 Mask = 0x80; // 1ライン目後半4ドット表示 for(i=0; i<4; i++){ if((ANKFont[letter][j*3+1] & Mask) != 0) lcd_Pixel(colum*12+i+12, line*14+j*2+2, Color1); else lcd_Pixel(colum*12+i+12, line*14+j*2+2, Color2); //背景色 Mask = Mask >> 1; } // 2ライン目前半4ドット表示 for(i=4; i<8; i++){ if((ANKFont[letter][j*3+1] & Mask) != 0) lcd_Pixel(colum*12+i, line*14+j*2+3, Color1); else lcd_Pixel(colum*12+i, line*14+j*2+3, Color2); //背景色 Mask = Mask >> 1; } } } }