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