NucleoF446 re + SSD1331 simple Library
Dependents: Nucleo_446 Nucleo446_SSD1331
ssd1331.cpp@0:9442efe129e7, 2018-10-11 (annotated)
- Committer:
- kadonotakashi
- Date:
- Thu Oct 11 01:58:04 2018 +0000
- Revision:
- 0:9442efe129e7
- Child:
- 1:85198abc3103
success to Initilize SSD1331
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kadonotakashi | 0:9442efe129e7 | 1 | |
kadonotakashi | 0:9442efe129e7 | 2 | #include "ssd1331.h" |
kadonotakashi | 0:9442efe129e7 | 3 | #include "mbed.h" |
kadonotakashi | 0:9442efe129e7 | 4 | |
kadonotakashi | 0:9442efe129e7 | 5 | |
kadonotakashi | 0:9442efe129e7 | 6 | |
kadonotakashi | 0:9442efe129e7 | 7 | /* |
kadonotakashi | 0:9442efe129e7 | 8 | private function |
kadonotakashi | 0:9442efe129e7 | 9 | */ |
kadonotakashi | 0:9442efe129e7 | 10 | |
kadonotakashi | 0:9442efe129e7 | 11 | void ssd1331::DataWr(uint8_t data) { |
kadonotakashi | 0:9442efe129e7 | 12 | _dc=1; |
kadonotakashi | 0:9442efe129e7 | 13 | _cs=0; |
kadonotakashi | 0:9442efe129e7 | 14 | _spi.write(data); |
kadonotakashi | 0:9442efe129e7 | 15 | _cs=1; |
kadonotakashi | 0:9442efe129e7 | 16 | } |
kadonotakashi | 0:9442efe129e7 | 17 | |
kadonotakashi | 0:9442efe129e7 | 18 | void ssd1331::CmdWr(uint8_t Cmd) { |
kadonotakashi | 0:9442efe129e7 | 19 | _dc=0; |
kadonotakashi | 0:9442efe129e7 | 20 | _cs=0; |
kadonotakashi | 0:9442efe129e7 | 21 | _spi.write(Cmd); |
kadonotakashi | 0:9442efe129e7 | 22 | _cs=1; |
kadonotakashi | 0:9442efe129e7 | 23 | } |
kadonotakashi | 0:9442efe129e7 | 24 | |
kadonotakashi | 0:9442efe129e7 | 25 | ssd1331::ssd1331(PinName mosi,PinName miso,PinName sclk,PinName cs,PinName dc,PinName reset) |
kadonotakashi | 0:9442efe129e7 | 26 | : _spi(mosi,miso,sclk),_cs(cs),_dc(dc),_rst(reset) |
kadonotakashi | 0:9442efe129e7 | 27 | { |
kadonotakashi | 0:9442efe129e7 | 28 | _spi.format(8,3); |
kadonotakashi | 0:9442efe129e7 | 29 | _spi.frequency(500000); |
kadonotakashi | 0:9442efe129e7 | 30 | _cs =1; |
kadonotakashi | 0:9442efe129e7 | 31 | _dc =1; |
kadonotakashi | 0:9442efe129e7 | 32 | _rst =0; |
kadonotakashi | 0:9442efe129e7 | 33 | |
kadonotakashi | 0:9442efe129e7 | 34 | FntList[7].pFnt=(GFXfont *)0; |
kadonotakashi | 0:9442efe129e7 | 35 | FntList[6].pFnt=(GFXfont *)0; |
kadonotakashi | 0:9442efe129e7 | 36 | FntList[5].pFnt=(GFXfont *)0; |
kadonotakashi | 0:9442efe129e7 | 37 | FntList[4].pFnt=(GFXfont *)0; |
kadonotakashi | 0:9442efe129e7 | 38 | FntList[3].pFnt=(GFXfont *)0; |
kadonotakashi | 0:9442efe129e7 | 39 | FntList[2].pFnt=(GFXfont *)0; |
kadonotakashi | 0:9442efe129e7 | 40 | FntList[1].pFnt=(GFXfont *)0; |
kadonotakashi | 0:9442efe129e7 | 41 | |
kadonotakashi | 0:9442efe129e7 | 42 | FntList[0].pFnt=(GFXfont *)&FreeMonoBold9pt7b; |
kadonotakashi | 0:9442efe129e7 | 43 | strcpy(FntList[0].FontName,"MonoBold9pt7b\0"); |
kadonotakashi | 0:9442efe129e7 | 44 | } |
kadonotakashi | 0:9442efe129e7 | 45 | |
kadonotakashi | 0:9442efe129e7 | 46 | |
kadonotakashi | 0:9442efe129e7 | 47 | |
kadonotakashi | 0:9442efe129e7 | 48 | void ssd1331::Initssd1331() |
kadonotakashi | 0:9442efe129e7 | 49 | { |
kadonotakashi | 0:9442efe129e7 | 50 | _cs =1; |
kadonotakashi | 0:9442efe129e7 | 51 | _dc =1; |
kadonotakashi | 0:9442efe129e7 | 52 | _rst =0; |
kadonotakashi | 0:9442efe129e7 | 53 | |
kadonotakashi | 0:9442efe129e7 | 54 | wait_ms(100); |
kadonotakashi | 0:9442efe129e7 | 55 | _rst =1; |
kadonotakashi | 0:9442efe129e7 | 56 | wait_ms(1); |
kadonotakashi | 0:9442efe129e7 | 57 | |
kadonotakashi | 0:9442efe129e7 | 58 | CmdWr(SSD1331_CMD_SetDspOff); |
kadonotakashi | 0:9442efe129e7 | 59 | CmdWr(SSD1331_CMD_SetRemap_DataFormat); CmdWr(0x72); //A[7:6] = 00; 256 color. A[7:6] = 01; 65k color format |
kadonotakashi | 0:9442efe129e7 | 60 | CmdWr(SSD1331_CMD_SetDspStrtLine); CmdWr(0x0); // |
kadonotakashi | 0:9442efe129e7 | 61 | CmdWr(SSD1331_CMD_SetDspOffset); CmdWr(0x0); // |
kadonotakashi | 0:9442efe129e7 | 62 | CmdWr(SSD1331_CMD_SetDspModeNorm); |
kadonotakashi | 0:9442efe129e7 | 63 | CmdWr(SSD1331_CMD_SetMltplRatio); CmdWr(63); // |
kadonotakashi | 0:9442efe129e7 | 64 | CmdWr(SSD1331_CMD_SetMstrCnfg); CmdWr(0x8e); // |
kadonotakashi | 0:9442efe129e7 | 65 | CmdWr(SSD1331_CMD_PowerSave); CmdWr(0x1A); // |
kadonotakashi | 0:9442efe129e7 | 66 | CmdWr(SSD1331_CMD_P1_P2_ADJ); CmdWr(0x74); // |
kadonotakashi | 0:9442efe129e7 | 67 | CmdWr(SSD1331_CMD_SetDispCLK); CmdWr(0xf0); // |
kadonotakashi | 0:9442efe129e7 | 68 | CmdWr(SSD1331_CMD_SetChrgA); CmdWr(0x81); // |
kadonotakashi | 0:9442efe129e7 | 69 | CmdWr(SSD1331_CMD_SetChrgB); CmdWr(0x82); // |
kadonotakashi | 0:9442efe129e7 | 70 | CmdWr(SSD1331_CMD_SetChrgC); CmdWr(0x83); // |
kadonotakashi | 0:9442efe129e7 | 71 | CmdWr(SSD1331_CMD_SetPrChrgV); CmdWr(0x3A); // |
kadonotakashi | 0:9442efe129e7 | 72 | CmdWr(SSD1331_CMD_SetVcomhV); CmdWr(0x3E); // |
kadonotakashi | 0:9442efe129e7 | 73 | CmdWr(SSD1331_CMD_SetMstrCrrnt); CmdWr(0x06); // |
kadonotakashi | 0:9442efe129e7 | 74 | CmdWr(SSD1331_CMD_SetClmAddr); CmdWr(0); CmdWr(95); // |
kadonotakashi | 0:9442efe129e7 | 75 | CmdWr(SSD1331_CMD_SetRawAddr); CmdWr(0); CmdWr(63); // |
kadonotakashi | 0:9442efe129e7 | 76 | CmdWr(SSD1331_CMD_SetCntrstA); CmdWr(0xff); // |
kadonotakashi | 0:9442efe129e7 | 77 | CmdWr(SSD1331_CMD_SetCntrstB); CmdWr(0xff); // |
kadonotakashi | 0:9442efe129e7 | 78 | CmdWr(SSD1331_CMD_SetCntrstC); CmdWr(0xfF); // |
kadonotakashi | 0:9442efe129e7 | 79 | |
kadonotakashi | 0:9442efe129e7 | 80 | CmdWr(SSD1331_CMD_SetDspOn); // |
kadonotakashi | 0:9442efe129e7 | 81 | wait_ms(100); |
kadonotakashi | 0:9442efe129e7 | 82 | } |
kadonotakashi | 0:9442efe129e7 | 83 | |
kadonotakashi | 0:9442efe129e7 | 84 | void ssd1331::ClearScreen() |
kadonotakashi | 0:9442efe129e7 | 85 | { |
kadonotakashi | 0:9442efe129e7 | 86 | |
kadonotakashi | 0:9442efe129e7 | 87 | wait_ms(1); //クリアーコマンドは400μs 以上の休止期間が必要かも |
kadonotakashi | 0:9442efe129e7 | 88 | |
kadonotakashi | 0:9442efe129e7 | 89 | CmdWr(SSD1331_CMD_ClearWindow); |
kadonotakashi | 0:9442efe129e7 | 90 | CmdWr(0); //X始点 |
kadonotakashi | 0:9442efe129e7 | 91 | CmdWr(0); //Y始点 |
kadonotakashi | 0:9442efe129e7 | 92 | CmdWr(WIDTH_1331-1); //X終点 |
kadonotakashi | 0:9442efe129e7 | 93 | CmdWr(HEIGHT_1331-1); //Y終点 |
kadonotakashi | 0:9442efe129e7 | 94 | |
kadonotakashi | 0:9442efe129e7 | 95 | wait_ms(1); //クリアーコマンドは400μs 以上の休止期間が必要かも |
kadonotakashi | 0:9442efe129e7 | 96 | } |
kadonotakashi | 0:9442efe129e7 | 97 | |
kadonotakashi | 0:9442efe129e7 | 98 | |
kadonotakashi | 0:9442efe129e7 | 99 | void ssd1331::DrawPix( uint16_t x, |
kadonotakashi | 0:9442efe129e7 | 100 | uint16_t y, |
kadonotakashi | 0:9442efe129e7 | 101 | uint16_t color ) |
kadonotakashi | 0:9442efe129e7 | 102 | { |
kadonotakashi | 0:9442efe129e7 | 103 | if(x>=WIDTH_1331-1){ return ; } |
kadonotakashi | 0:9442efe129e7 | 104 | if(y>=HEIGHT_1331-1){ return ; } |
kadonotakashi | 0:9442efe129e7 | 105 | |
kadonotakashi | 0:9442efe129e7 | 106 | CmdWr(SSD1331_CMD_SetClmAddr); CmdWr(x); CmdWr(x); |
kadonotakashi | 0:9442efe129e7 | 107 | CmdWr(SSD1331_CMD_SetRawAddr); CmdWr(y); CmdWr(y); |
kadonotakashi | 0:9442efe129e7 | 108 | DataWr( 0xff & (color>>8) ); DataWr( 0xff & (color) ); |
kadonotakashi | 0:9442efe129e7 | 109 | return; |
kadonotakashi | 0:9442efe129e7 | 110 | |
kadonotakashi | 0:9442efe129e7 | 111 | } |
kadonotakashi | 0:9442efe129e7 | 112 | |
kadonotakashi | 0:9442efe129e7 | 113 | void ssd1331::DrawLine( uint8_t xs, |
kadonotakashi | 0:9442efe129e7 | 114 | uint8_t ys, |
kadonotakashi | 0:9442efe129e7 | 115 | uint8_t xe, |
kadonotakashi | 0:9442efe129e7 | 116 | uint8_t ye, |
kadonotakashi | 0:9442efe129e7 | 117 | uint16_t color ) |
kadonotakashi | 0:9442efe129e7 | 118 | { |
kadonotakashi | 0:9442efe129e7 | 119 | if(xe>=WIDTH_1331-1){ return ; } |
kadonotakashi | 0:9442efe129e7 | 120 | if(ye>=HEIGHT_1331-1){ return ; } |
kadonotakashi | 0:9442efe129e7 | 121 | if(xe>=WIDTH_1331-1){ return ; } |
kadonotakashi | 0:9442efe129e7 | 122 | if(ye>=HEIGHT_1331-1){ return ; } |
kadonotakashi | 0:9442efe129e7 | 123 | |
kadonotakashi | 0:9442efe129e7 | 124 | CmdWr(SSD1331_CMD_DrawLine); |
kadonotakashi | 0:9442efe129e7 | 125 | CmdWr(xs); CmdWr(ys); CmdWr(xe); CmdWr(ye); |
kadonotakashi | 0:9442efe129e7 | 126 | |
kadonotakashi | 0:9442efe129e7 | 127 | //color R 5bit bit 15-11 |
kadonotakashi | 0:9442efe129e7 | 128 | // G 6bit bit 10- 5 |
kadonotakashi | 0:9442efe129e7 | 129 | // B 5bit bit 4- 0 |
kadonotakashi | 0:9442efe129e7 | 130 | CmdWr((color>>10) & 0x3e); //R 5bit |
kadonotakashi | 0:9442efe129e7 | 131 | CmdWr((color>>5) & 0x3f); //G 6bit |
kadonotakashi | 0:9442efe129e7 | 132 | CmdWr((color<<1) & 0x3e); //B 5bit |
kadonotakashi | 0:9442efe129e7 | 133 | } |
kadonotakashi | 0:9442efe129e7 | 134 | |
kadonotakashi | 0:9442efe129e7 | 135 | void ssd1331::DrawRectangle( uint8_t xs, |
kadonotakashi | 0:9442efe129e7 | 136 | uint8_t ys, |
kadonotakashi | 0:9442efe129e7 | 137 | uint8_t xe, |
kadonotakashi | 0:9442efe129e7 | 138 | uint8_t ye, |
kadonotakashi | 0:9442efe129e7 | 139 | uint16_t color ) |
kadonotakashi | 0:9442efe129e7 | 140 | { |
kadonotakashi | 0:9442efe129e7 | 141 | CmdWr(SSD1331_CMD_FillEnable); CmdWr(0x00); //塗りつぶし禁止 |
kadonotakashi | 0:9442efe129e7 | 142 | |
kadonotakashi | 0:9442efe129e7 | 143 | CmdWr(SSD1331_CMD_DrawRectangle); |
kadonotakashi | 0:9442efe129e7 | 144 | CmdWr(xs); CmdWr(ys); CmdWr(xe); CmdWr(ye); |
kadonotakashi | 0:9442efe129e7 | 145 | |
kadonotakashi | 0:9442efe129e7 | 146 | //color R 5bit bit 15-11 |
kadonotakashi | 0:9442efe129e7 | 147 | // G 6bit bit 10- 5 |
kadonotakashi | 0:9442efe129e7 | 148 | // B 5bit bit 4- 0 |
kadonotakashi | 0:9442efe129e7 | 149 | CmdWr((color>>10) & 0x3e); //R 5bit |
kadonotakashi | 0:9442efe129e7 | 150 | CmdWr((color>>5) & 0x3f); //G 6bit |
kadonotakashi | 0:9442efe129e7 | 151 | CmdWr((color<<1) & 0x3e); //B 5bit |
kadonotakashi | 0:9442efe129e7 | 152 | CmdWr(0); //R 5bit |
kadonotakashi | 0:9442efe129e7 | 153 | CmdWr(0); //G 6bit |
kadonotakashi | 0:9442efe129e7 | 154 | CmdWr(0); //B 5bit |
kadonotakashi | 0:9442efe129e7 | 155 | wait_us(100); |
kadonotakashi | 0:9442efe129e7 | 156 | |
kadonotakashi | 0:9442efe129e7 | 157 | } |
kadonotakashi | 0:9442efe129e7 | 158 | |
kadonotakashi | 0:9442efe129e7 | 159 | void ssd1331::DrawRectangleFill( uint8_t xs, |
kadonotakashi | 0:9442efe129e7 | 160 | uint8_t ys, |
kadonotakashi | 0:9442efe129e7 | 161 | uint8_t xe, |
kadonotakashi | 0:9442efe129e7 | 162 | uint8_t ye, |
kadonotakashi | 0:9442efe129e7 | 163 | uint16_t line_color, |
kadonotakashi | 0:9442efe129e7 | 164 | uint16_t fill_color ) |
kadonotakashi | 0:9442efe129e7 | 165 | |
kadonotakashi | 0:9442efe129e7 | 166 | { |
kadonotakashi | 0:9442efe129e7 | 167 | CmdWr(SSD1331_CMD_FillEnable); CmdWr(0x01); //塗りつぶし禁止 |
kadonotakashi | 0:9442efe129e7 | 168 | |
kadonotakashi | 0:9442efe129e7 | 169 | CmdWr(SSD1331_CMD_DrawRectangle); |
kadonotakashi | 0:9442efe129e7 | 170 | CmdWr(xs); CmdWr(ys); CmdWr(xe); CmdWr(ye); |
kadonotakashi | 0:9442efe129e7 | 171 | |
kadonotakashi | 0:9442efe129e7 | 172 | //color R 5bit bit 15-11 |
kadonotakashi | 0:9442efe129e7 | 173 | // G 6bit bit 10- 5 |
kadonotakashi | 0:9442efe129e7 | 174 | // B 5bit bit 4- 0 |
kadonotakashi | 0:9442efe129e7 | 175 | CmdWr((line_color>>10) & 0x3e); //R 5bit |
kadonotakashi | 0:9442efe129e7 | 176 | CmdWr((line_color>>5) & 0x3f); //G 6bit |
kadonotakashi | 0:9442efe129e7 | 177 | CmdWr((line_color<<1) & 0x3e); //B 5bit |
kadonotakashi | 0:9442efe129e7 | 178 | CmdWr((fill_color>>10) & 0x3e); //R 5bit |
kadonotakashi | 0:9442efe129e7 | 179 | CmdWr((fill_color>>5) & 0x3f); //G 6bit |
kadonotakashi | 0:9442efe129e7 | 180 | CmdWr((fill_color<<1) & 0x3e); //B 5bit |
kadonotakashi | 0:9442efe129e7 | 181 | wait_us(400); |
kadonotakashi | 0:9442efe129e7 | 182 | } |
kadonotakashi | 0:9442efe129e7 | 183 | |
kadonotakashi | 0:9442efe129e7 | 184 | |
kadonotakashi | 0:9442efe129e7 | 185 | |
kadonotakashi | 0:9442efe129e7 | 186 | /* |
kadonotakashi | 0:9442efe129e7 | 187 | * Adafruit Font Library |
kadonotakashi | 0:9442efe129e7 | 188 | * */ |
kadonotakashi | 0:9442efe129e7 | 189 | int ssd1331::put_charPattern(char CharCode,uint16_t CHAR_COLOR,uint16_t xs,uint16_t ys,int FontSel) |
kadonotakashi | 0:9442efe129e7 | 190 | { |
kadonotakashi | 0:9442efe129e7 | 191 | uint8_t FirstCode,char_offset; |
kadonotakashi | 0:9442efe129e7 | 192 | uint8_t *pFNT; |
kadonotakashi | 0:9442efe129e7 | 193 | |
kadonotakashi | 0:9442efe129e7 | 194 | int x,y; |
kadonotakashi | 0:9442efe129e7 | 195 | int FontWidth,FontHeight,FontDotCap,bitCnt; |
kadonotakashi | 0:9442efe129e7 | 196 | int xOffset,yOffset; |
kadonotakashi | 0:9442efe129e7 | 197 | uint8_t LinePattern; |
kadonotakashi | 0:9442efe129e7 | 198 | int BitCount; |
kadonotakashi | 0:9442efe129e7 | 199 | |
kadonotakashi | 0:9442efe129e7 | 200 | FirstCode = FntList[FontSel].pFnt->first; |
kadonotakashi | 0:9442efe129e7 | 201 | if ((CharCode > FntList[FontSel].pFnt->last)||(CharCode < FirstCode)){ |
kadonotakashi | 0:9442efe129e7 | 202 | return -1; |
kadonotakashi | 0:9442efe129e7 | 203 | } |
kadonotakashi | 0:9442efe129e7 | 204 | |
kadonotakashi | 0:9442efe129e7 | 205 | char_offset=(CharCode - FirstCode); |
kadonotakashi | 0:9442efe129e7 | 206 | pFNT = FntList[FontSel].pFnt->bitmap; |
kadonotakashi | 0:9442efe129e7 | 207 | pFNT += FntList[FontSel].pFnt->glyph[char_offset].bitmapOffset; |
kadonotakashi | 0:9442efe129e7 | 208 | |
kadonotakashi | 0:9442efe129e7 | 209 | FontWidth = FntList[FontSel].pFnt->glyph[char_offset].width; |
kadonotakashi | 0:9442efe129e7 | 210 | FontHeight = FntList[FontSel].pFnt->glyph[char_offset].height; |
kadonotakashi | 0:9442efe129e7 | 211 | FontDotCap = FontWidth * FontHeight; |
kadonotakashi | 0:9442efe129e7 | 212 | |
kadonotakashi | 0:9442efe129e7 | 213 | xOffset = FntList[FontSel].pFnt->glyph[char_offset].xOffset; |
kadonotakashi | 0:9442efe129e7 | 214 | yOffset = FntList[FontSel].pFnt->glyph[char_offset].yOffset; |
kadonotakashi | 0:9442efe129e7 | 215 | |
kadonotakashi | 0:9442efe129e7 | 216 | x=0; |
kadonotakashi | 0:9442efe129e7 | 217 | y=0; |
kadonotakashi | 0:9442efe129e7 | 218 | BitCount=8; |
kadonotakashi | 0:9442efe129e7 | 219 | |
kadonotakashi | 0:9442efe129e7 | 220 | for(bitCnt=0;bitCnt<FontDotCap;bitCnt++){ |
kadonotakashi | 0:9442efe129e7 | 221 | if (8==BitCount){ |
kadonotakashi | 0:9442efe129e7 | 222 | LinePattern = *pFNT++; |
kadonotakashi | 0:9442efe129e7 | 223 | BitCount=0; |
kadonotakashi | 0:9442efe129e7 | 224 | } |
kadonotakashi | 0:9442efe129e7 | 225 | if((LinePattern & 0x80)!=0){ |
kadonotakashi | 0:9442efe129e7 | 226 | DrawPix(x+xs+xOffset,y+ys+yOffset,CHAR_COLOR); |
kadonotakashi | 0:9442efe129e7 | 227 | // Serial.print("@"); |
kadonotakashi | 0:9442efe129e7 | 228 | |
kadonotakashi | 0:9442efe129e7 | 229 | // Serial.print(" x "); |
kadonotakashi | 0:9442efe129e7 | 230 | // Serial.print(x+xs+xOffset); |
kadonotakashi | 0:9442efe129e7 | 231 | // Serial.print(" y "); |
kadonotakashi | 0:9442efe129e7 | 232 | // Serial.print(y+ys+yOffset); |
kadonotakashi | 0:9442efe129e7 | 233 | |
kadonotakashi | 0:9442efe129e7 | 234 | }else{ |
kadonotakashi | 0:9442efe129e7 | 235 | // Serial.print("."); |
kadonotakashi | 0:9442efe129e7 | 236 | } |
kadonotakashi | 0:9442efe129e7 | 237 | |
kadonotakashi | 0:9442efe129e7 | 238 | LinePattern = LinePattern<<1; |
kadonotakashi | 0:9442efe129e7 | 239 | |
kadonotakashi | 0:9442efe129e7 | 240 | if(x>=FontWidth-1){ |
kadonotakashi | 0:9442efe129e7 | 241 | x=0; y++; |
kadonotakashi | 0:9442efe129e7 | 242 | // Serial.println(); |
kadonotakashi | 0:9442efe129e7 | 243 | }else{ |
kadonotakashi | 0:9442efe129e7 | 244 | x++; |
kadonotakashi | 0:9442efe129e7 | 245 | } |
kadonotakashi | 0:9442efe129e7 | 246 | BitCount++; |
kadonotakashi | 0:9442efe129e7 | 247 | } |
kadonotakashi | 0:9442efe129e7 | 248 | return FntList[FontSel].pFnt->glyph[char_offset].xAdvance; |
kadonotakashi | 0:9442efe129e7 | 249 | } |
kadonotakashi | 0:9442efe129e7 | 250 | |
kadonotakashi | 0:9442efe129e7 | 251 | int ssd1331::PutString(int x,int y,char *string,uint16_t CharColor,int FontSel) |
kadonotakashi | 0:9442efe129e7 | 252 | { |
kadonotakashi | 0:9442efe129e7 | 253 | int i,j,k; |
kadonotakashi | 0:9442efe129e7 | 254 | char *STR; |
kadonotakashi | 0:9442efe129e7 | 255 | |
kadonotakashi | 0:9442efe129e7 | 256 | STR = (char *)string; |
kadonotakashi | 0:9442efe129e7 | 257 | |
kadonotakashi | 0:9442efe129e7 | 258 | for(i=0,j=x;;i++,STR++){ |
kadonotakashi | 0:9442efe129e7 | 259 | |
kadonotakashi | 0:9442efe129e7 | 260 | if (*STR==0){ |
kadonotakashi | 0:9442efe129e7 | 261 | return 0; |
kadonotakashi | 0:9442efe129e7 | 262 | } |
kadonotakashi | 0:9442efe129e7 | 263 | |
kadonotakashi | 0:9442efe129e7 | 264 | k=put_charPattern(*STR,CharColor,j,y,FontSel); |
kadonotakashi | 0:9442efe129e7 | 265 | if(k<0){ |
kadonotakashi | 0:9442efe129e7 | 266 | return -2; |
kadonotakashi | 0:9442efe129e7 | 267 | }else{ |
kadonotakashi | 0:9442efe129e7 | 268 | j=j+k; |
kadonotakashi | 0:9442efe129e7 | 269 | } |
kadonotakashi | 0:9442efe129e7 | 270 | } |
kadonotakashi | 0:9442efe129e7 | 271 | return 0; |
kadonotakashi | 0:9442efe129e7 | 272 | } |