電子ペーパーで所在を表示しておくプレートのプログラムです
Dependencies: SDFileSystem mbed
eink.cpp@0:eca549a6e38d, 2016-04-21 (annotated)
- Committer:
- kohacraft
- Date:
- Thu Apr 21 00:42:46 2016 +0000
- Revision:
- 0:eca549a6e38d
- Child:
- 1:bd1c3875fb64
ver1.0;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kohacraft | 0:eca549a6e38d | 1 | #include "mbed.h" |
kohacraft | 0:eca549a6e38d | 2 | #include "extdio.h" |
kohacraft | 0:eca549a6e38d | 3 | #include "eink.h" |
kohacraft | 0:eca549a6e38d | 4 | |
kohacraft | 0:eca549a6e38d | 5 | |
kohacraft | 0:eca549a6e38d | 6 | //ポートの初期化 |
kohacraft | 0:eca549a6e38d | 7 | void initPort() |
kohacraft | 0:eca549a6e38d | 8 | { |
kohacraft | 0:eca549a6e38d | 9 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 10 | setContBas( LE , 0); |
kohacraft | 0:eca549a6e38d | 11 | setContBas( OE , 0); |
kohacraft | 0:eca549a6e38d | 12 | setContBas( NC10 , 1); |
kohacraft | 0:eca549a6e38d | 13 | setContBas( SPH , 1); |
kohacraft | 0:eca549a6e38d | 14 | |
kohacraft | 0:eca549a6e38d | 15 | setContBas( GMODE , 0); |
kohacraft | 0:eca549a6e38d | 16 | setContBas( SPV , 1); |
kohacraft | 0:eca549a6e38d | 17 | setContBas( CKV , 0); |
kohacraft | 0:eca549a6e38d | 18 | setContBas( EN , 0); |
kohacraft | 0:eca549a6e38d | 19 | |
kohacraft | 0:eca549a6e38d | 20 | setDataBas( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ); |
kohacraft | 0:eca549a6e38d | 21 | } |
kohacraft | 0:eca549a6e38d | 22 | |
kohacraft | 0:eca549a6e38d | 23 | //pageStart |
kohacraft | 0:eca549a6e38d | 24 | void pageStart() |
kohacraft | 0:eca549a6e38d | 25 | { |
kohacraft | 0:eca549a6e38d | 26 | |
kohacraft | 0:eca549a6e38d | 27 | setContBas( GMODE , 1 ); |
kohacraft | 0:eca549a6e38d | 28 | setContBas( CKV , 1 ); |
kohacraft | 0:eca549a6e38d | 29 | wait_us(11); |
kohacraft | 0:eca549a6e38d | 30 | setContBas( SPV , 0 ); |
kohacraft | 0:eca549a6e38d | 31 | wait_us(11); |
kohacraft | 0:eca549a6e38d | 32 | setContBas( CKV , 0 ); |
kohacraft | 0:eca549a6e38d | 33 | wait_us(10); |
kohacraft | 0:eca549a6e38d | 34 | setContBas( CKV , 1 ); |
kohacraft | 0:eca549a6e38d | 35 | wait_us(10); |
kohacraft | 0:eca549a6e38d | 36 | setContBas( SPV , 1 ); |
kohacraft | 0:eca549a6e38d | 37 | wait_us(12); |
kohacraft | 0:eca549a6e38d | 38 | |
kohacraft | 0:eca549a6e38d | 39 | setContBas( CKV , 0 ); |
kohacraft | 0:eca549a6e38d | 40 | wait_us(10); |
kohacraft | 0:eca549a6e38d | 41 | setContBas( CKV , 1 ); |
kohacraft | 0:eca549a6e38d | 42 | wait_us(22); |
kohacraft | 0:eca549a6e38d | 43 | setContBas( CKV , 0 ); |
kohacraft | 0:eca549a6e38d | 44 | wait_us(10); |
kohacraft | 0:eca549a6e38d | 45 | setContBas( CKV , 1 ); |
kohacraft | 0:eca549a6e38d | 46 | wait_us(22); |
kohacraft | 0:eca549a6e38d | 47 | setContBas( CKV , 0 ); |
kohacraft | 0:eca549a6e38d | 48 | wait_us(10); |
kohacraft | 0:eca549a6e38d | 49 | setContBas( CKV , 1 ); |
kohacraft | 0:eca549a6e38d | 50 | wait_us(1); |
kohacraft | 0:eca549a6e38d | 51 | } |
kohacraft | 0:eca549a6e38d | 52 | |
kohacraft | 0:eca549a6e38d | 53 | //lineStart |
kohacraft | 0:eca549a6e38d | 54 | void lineStart() |
kohacraft | 0:eca549a6e38d | 55 | { |
kohacraft | 0:eca549a6e38d | 56 | |
kohacraft | 0:eca549a6e38d | 57 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 58 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 59 | setContBas( LE , 0 ); |
kohacraft | 0:eca549a6e38d | 60 | wait_us(1); |
kohacraft | 0:eca549a6e38d | 61 | |
kohacraft | 0:eca549a6e38d | 62 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 63 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 64 | wait_us(1); |
kohacraft | 0:eca549a6e38d | 65 | |
kohacraft | 0:eca549a6e38d | 66 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 67 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 68 | wait_us(1); |
kohacraft | 0:eca549a6e38d | 69 | |
kohacraft | 0:eca549a6e38d | 70 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 71 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 72 | setContBas( OE , 1 ); |
kohacraft | 0:eca549a6e38d | 73 | wait_us(1); |
kohacraft | 0:eca549a6e38d | 74 | |
kohacraft | 0:eca549a6e38d | 75 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 76 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 77 | setContBas( SPH , 0 ); |
kohacraft | 0:eca549a6e38d | 78 | } |
kohacraft | 0:eca549a6e38d | 79 | |
kohacraft | 0:eca549a6e38d | 80 | //点を描画 |
kohacraft | 0:eca549a6e38d | 81 | void drowPixelsRaw( bool d7 , bool d6 , bool d5 , bool d4 , bool d3 , bool d2 , bool d1 , bool d0 ) |
kohacraft | 0:eca549a6e38d | 82 | { |
kohacraft | 0:eca549a6e38d | 83 | setDataBas( d7 , d6 , d5 , d4 , d3 , d2 , d1 , d0 ); |
kohacraft | 0:eca549a6e38d | 84 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 85 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 86 | } |
kohacraft | 0:eca549a6e38d | 87 | |
kohacraft | 0:eca549a6e38d | 88 | //lineEnd |
kohacraft | 0:eca549a6e38d | 89 | void lineEnd() |
kohacraft | 0:eca549a6e38d | 90 | { |
kohacraft | 0:eca549a6e38d | 91 | setContBas( NC10 , 1 ); |
kohacraft | 0:eca549a6e38d | 92 | setContBas( CKV , 0 ); |
kohacraft | 0:eca549a6e38d | 93 | |
kohacraft | 0:eca549a6e38d | 94 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 95 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 96 | wait_us(10); |
kohacraft | 0:eca549a6e38d | 97 | |
kohacraft | 0:eca549a6e38d | 98 | setContBas( OE , 0 ); |
kohacraft | 0:eca549a6e38d | 99 | setContBas( LE , 1 ); |
kohacraft | 0:eca549a6e38d | 100 | setContBas( CKV , 1 ); |
kohacraft | 0:eca549a6e38d | 101 | wait_us(1); |
kohacraft | 0:eca549a6e38d | 102 | } |
kohacraft | 0:eca549a6e38d | 103 | |
kohacraft | 0:eca549a6e38d | 104 | //pageEnd |
kohacraft | 0:eca549a6e38d | 105 | void pageEnd() |
kohacraft | 0:eca549a6e38d | 106 | { |
kohacraft | 0:eca549a6e38d | 107 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 108 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 109 | setContBas( LE , 0 ); |
kohacraft | 0:eca549a6e38d | 110 | |
kohacraft | 0:eca549a6e38d | 111 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 112 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 113 | |
kohacraft | 0:eca549a6e38d | 114 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 115 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 116 | |
kohacraft | 0:eca549a6e38d | 117 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 118 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 119 | setContBas( OE , 1 ); |
kohacraft | 0:eca549a6e38d | 120 | |
kohacraft | 0:eca549a6e38d | 121 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 122 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 123 | |
kohacraft | 0:eca549a6e38d | 124 | for( int i=0 ; i<200 ; i++ ) |
kohacraft | 0:eca549a6e38d | 125 | { |
kohacraft | 0:eca549a6e38d | 126 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 127 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 128 | } |
kohacraft | 0:eca549a6e38d | 129 | setContBas( CKV , 0 ); |
kohacraft | 0:eca549a6e38d | 130 | |
kohacraft | 0:eca549a6e38d | 131 | setCL( 1 ); |
kohacraft | 0:eca549a6e38d | 132 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 133 | |
kohacraft | 0:eca549a6e38d | 134 | wait_us(10); |
kohacraft | 0:eca549a6e38d | 135 | setContBas( OE , 0 ); |
kohacraft | 0:eca549a6e38d | 136 | |
kohacraft | 0:eca549a6e38d | 137 | wait_us(330); |
kohacraft | 0:eca549a6e38d | 138 | |
kohacraft | 0:eca549a6e38d | 139 | setContBas( GMODE , 0 ); |
kohacraft | 0:eca549a6e38d | 140 | wait_us(130); |
kohacraft | 0:eca549a6e38d | 141 | |
kohacraft | 0:eca549a6e38d | 142 | } |
kohacraft | 0:eca549a6e38d | 143 | |
kohacraft | 0:eca549a6e38d | 144 | //SPHを交代する |
kohacraft | 0:eca549a6e38d | 145 | void changeSPH() |
kohacraft | 0:eca549a6e38d | 146 | { |
kohacraft | 0:eca549a6e38d | 147 | setContBas( SPH , 1 ); |
kohacraft | 0:eca549a6e38d | 148 | setContBas( NC10 , 0 ); |
kohacraft | 0:eca549a6e38d | 149 | } |
kohacraft | 0:eca549a6e38d | 150 | |
kohacraft | 0:eca549a6e38d | 151 | //電子ペーパーの回路の電源を切る |
kohacraft | 0:eca549a6e38d | 152 | void powerOff() |
kohacraft | 0:eca549a6e38d | 153 | { |
kohacraft | 0:eca549a6e38d | 154 | setDataBas( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ); |
kohacraft | 0:eca549a6e38d | 155 | |
kohacraft | 0:eca549a6e38d | 156 | setCL( 0 ); |
kohacraft | 0:eca549a6e38d | 157 | setContBas( LE , 0); |
kohacraft | 0:eca549a6e38d | 158 | setContBas( OE , 0); |
kohacraft | 0:eca549a6e38d | 159 | setContBas( NC10 , 0); |
kohacraft | 0:eca549a6e38d | 160 | setContBas( SPH , 0); |
kohacraft | 0:eca549a6e38d | 161 | |
kohacraft | 0:eca549a6e38d | 162 | setContBas( GMODE , 0); |
kohacraft | 0:eca549a6e38d | 163 | setContBas( SPV , 0); |
kohacraft | 0:eca549a6e38d | 164 | setContBas( CKV , 0); |
kohacraft | 0:eca549a6e38d | 165 | |
kohacraft | 0:eca549a6e38d | 166 | setContBas( EN , 1); |
kohacraft | 0:eca549a6e38d | 167 | |
kohacraft | 0:eca549a6e38d | 168 | } |
kohacraft | 0:eca549a6e38d | 169 | |
kohacraft | 0:eca549a6e38d | 170 | //電子ペーパーの回路の電源を入れる |
kohacraft | 0:eca549a6e38d | 171 | void powerOn() |
kohacraft | 0:eca549a6e38d | 172 | { |
kohacraft | 0:eca549a6e38d | 173 | setContBas( EN , 0); |
kohacraft | 0:eca549a6e38d | 174 | } |
kohacraft | 0:eca549a6e38d | 175 | |
kohacraft | 0:eca549a6e38d | 176 | //画面をクリアする 0:黒 1:白 |
kohacraft | 0:eca549a6e38d | 177 | void clrdisp( bool color ) |
kohacraft | 0:eca549a6e38d | 178 | { |
kohacraft | 0:eca549a6e38d | 179 | pageStart(); |
kohacraft | 0:eca549a6e38d | 180 | for( int j=0 ; j<600 ; j++) |
kohacraft | 0:eca549a6e38d | 181 | { |
kohacraft | 0:eca549a6e38d | 182 | lineStart(); |
kohacraft | 0:eca549a6e38d | 183 | for( int i=0 ; i<100 ; i++ ) |
kohacraft | 0:eca549a6e38d | 184 | { |
kohacraft | 0:eca549a6e38d | 185 | if( color == 1) |
kohacraft | 0:eca549a6e38d | 186 | drowPixelsRaw( 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 ); //白でクリアする |
kohacraft | 0:eca549a6e38d | 187 | else |
kohacraft | 0:eca549a6e38d | 188 | drowPixelsRaw( 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 ); //黒でクリアする |
kohacraft | 0:eca549a6e38d | 189 | } |
kohacraft | 0:eca549a6e38d | 190 | changeSPH(); |
kohacraft | 0:eca549a6e38d | 191 | for( int i=100 ; i<200 ; i++ ) |
kohacraft | 0:eca549a6e38d | 192 | { |
kohacraft | 0:eca549a6e38d | 193 | if( color == 1) |
kohacraft | 0:eca549a6e38d | 194 | drowPixelsRaw( 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 ); //白でクリアする |
kohacraft | 0:eca549a6e38d | 195 | else |
kohacraft | 0:eca549a6e38d | 196 | drowPixelsRaw( 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 ); //黒でクリアする |
kohacraft | 0:eca549a6e38d | 197 | } |
kohacraft | 0:eca549a6e38d | 198 | lineEnd(); |
kohacraft | 0:eca549a6e38d | 199 | |
kohacraft | 0:eca549a6e38d | 200 | } |
kohacraft | 0:eca549a6e38d | 201 | pageEnd(); |
kohacraft | 0:eca549a6e38d | 202 | } |
kohacraft | 0:eca549a6e38d | 203 | |
kohacraft | 0:eca549a6e38d | 204 | |
kohacraft | 0:eca549a6e38d | 205 | |
kohacraft | 0:eca549a6e38d | 206 | //1Byte分の8ドットを描画 paletteWhite:0の部分を白で描画 1の部分を白で描画 |
kohacraft | 0:eca549a6e38d | 207 | void drowPixels( char data , bool paletteWhite ) |
kohacraft | 0:eca549a6e38d | 208 | { |
kohacraft | 0:eca549a6e38d | 209 | if( paletteWhite == 0 ) |
kohacraft | 0:eca549a6e38d | 210 | { |
kohacraft | 0:eca549a6e38d | 211 | drowPixelsRaw( (data&0x10)!=0 , 1 , (data&0x20)!=0 , 1 , (data&0x40)!=0 , 1 , (data&0x80)!=0 , 1 ); |
kohacraft | 0:eca549a6e38d | 212 | drowPixelsRaw( (data&0x01)!=0 , 1 , (data&0x02)!=0 , 1 , (data&0x04)!=0 , 1 , (data&0x08)!=0 , 1 ); |
kohacraft | 0:eca549a6e38d | 213 | //drowPixelsRaw( (data&0x10)!=0 , (data&0x10)==0 , (data&0x20)!=0 , (data&0x20)==0 , (data&0x40)!=0 , (data&0x40)==0 , (data&0x80)!=0 , (data&0x80)==0 ); |
kohacraft | 0:eca549a6e38d | 214 | //drowPixelsRaw( (data&0x01)!=0 , (data&0x01)==0 , (data&0x02)!=0 , (data&0x02)==0 , (data&0x04)!=0 , (data&0x04)==0 , (data&0x08)!=0 , (data&0x08)==0 ); |
kohacraft | 0:eca549a6e38d | 215 | } |
kohacraft | 0:eca549a6e38d | 216 | else |
kohacraft | 0:eca549a6e38d | 217 | { |
kohacraft | 0:eca549a6e38d | 218 | drowPixelsRaw( (data&0x10)==0 , 1 , (data&0x20)==0 , 1 , (data&0x40)==0 , 1 , (data&0x80)==0 , 1 ); |
kohacraft | 0:eca549a6e38d | 219 | drowPixelsRaw( (data&0x01)==0 , 1 , (data&0x02)==0 , 1 , (data&0x04)==0 , 1 , (data&0x08)==0 , 1 ); |
kohacraft | 0:eca549a6e38d | 220 | //drowPixelsRaw( (data&0x10)==0 , (data&0x10)!=0 , (data&0x20)==0 , (data&0x20)!=0 , (data&0x40)==0 , (data&0x40)!=0 , (data&0x80)==0 , (data&0x80)!=0 ); |
kohacraft | 0:eca549a6e38d | 221 | //drowPixelsRaw( (data&0x01)==0 , (data&0x01)!=0 , (data&0x02)==0 , (data&0x02)!=0 , (data&0x04)==0 , (data&0x04)!=0 , (data&0x08)==0 , (data&0x08)!=0 ); |
kohacraft | 0:eca549a6e38d | 222 | } |
kohacraft | 0:eca549a6e38d | 223 | } |
kohacraft | 0:eca549a6e38d | 224 | |
kohacraft | 0:eca549a6e38d | 225 | //fpのbmpを0,0の座標に描画する BMPのピクセルサイズは8の倍数必須 |
kohacraft | 0:eca549a6e38d | 226 | void dispbmp(FILE *fp ) |
kohacraft | 0:eca549a6e38d | 227 | { |
kohacraft | 0:eca549a6e38d | 228 | dispbmp( fp , 0 , 0 ); |
kohacraft | 0:eca549a6e38d | 229 | } |
kohacraft | 0:eca549a6e38d | 230 | |
kohacraft | 0:eca549a6e38d | 231 | //fpのbmpを指定したの座標に描画する |
kohacraft | 0:eca549a6e38d | 232 | //BMPのピクセルサイズは8の倍数必須 |
kohacraft | 0:eca549a6e38d | 233 | //座標は8の倍数で指定 |
kohacraft | 0:eca549a6e38d | 234 | void dispbmp(FILE *fp , int xpos , int ypos) |
kohacraft | 0:eca549a6e38d | 235 | { |
kohacraft | 0:eca549a6e38d | 236 | char bmpdata; |
kohacraft | 0:eca549a6e38d | 237 | int size; |
kohacraft | 0:eca549a6e38d | 238 | |
kohacraft | 0:eca549a6e38d | 239 | //ファイルポインタが正しいか確認 |
kohacraft | 0:eca549a6e38d | 240 | if( fp == NULL ) |
kohacraft | 0:eca549a6e38d | 241 | { |
kohacraft | 0:eca549a6e38d | 242 | fclose(fp); |
kohacraft | 0:eca549a6e38d | 243 | free(fp); |
kohacraft | 0:eca549a6e38d | 244 | |
kohacraft | 0:eca549a6e38d | 245 | //ファイルポインタが正しくない |
kohacraft | 0:eca549a6e38d | 246 | clrdisp(1); //白でクリア |
kohacraft | 0:eca549a6e38d | 247 | clrdisp(0); //黒でクリア |
kohacraft | 0:eca549a6e38d | 248 | clrdisp(1); //白でクリア |
kohacraft | 0:eca549a6e38d | 249 | clrdisp(0); //黒でクリア |
kohacraft | 0:eca549a6e38d | 250 | |
kohacraft | 0:eca549a6e38d | 251 | return; |
kohacraft | 0:eca549a6e38d | 252 | } |
kohacraft | 0:eca549a6e38d | 253 | |
kohacraft | 0:eca549a6e38d | 254 | |
kohacraft | 0:eca549a6e38d | 255 | |
kohacraft | 0:eca549a6e38d | 256 | //画像のサイズ取得 |
kohacraft | 0:eca549a6e38d | 257 | unsigned int xsize , ysize; |
kohacraft | 0:eca549a6e38d | 258 | fseek(fp, 18 , SEEK_SET);//to xsize |
kohacraft | 0:eca549a6e38d | 259 | size = fread( &xsize , sizeof(unsigned int) , 1 , fp); |
kohacraft | 0:eca549a6e38d | 260 | size = fread( &ysize , sizeof(unsigned int) , 1 , fp); |
kohacraft | 0:eca549a6e38d | 261 | |
kohacraft | 0:eca549a6e38d | 262 | |
kohacraft | 0:eca549a6e38d | 263 | //パレットデータの先頭まで移動 |
kohacraft | 0:eca549a6e38d | 264 | unsigned char palettetemp[8]; |
kohacraft | 0:eca549a6e38d | 265 | fseek(fp, 54 , SEEK_SET);//bitmap headder throw |
kohacraft | 0:eca549a6e38d | 266 | size = fread( palettetemp , sizeof(char) , 8 , fp); |
kohacraft | 0:eca549a6e38d | 267 | int palette0 = (int)palettetemp[0]+(int)palettetemp[1]+(int)palettetemp[2]; //パレット0のRGBの合計 |
kohacraft | 0:eca549a6e38d | 268 | int palette1 = (int)palettetemp[4]+(int)palettetemp[5]+(int)palettetemp[6]; //パレット1のRGBの合計 |
kohacraft | 0:eca549a6e38d | 269 | bool paletteWhite = 0; |
kohacraft | 0:eca549a6e38d | 270 | if( palette0 > palette1 ) //輝度が明るいパレットを白にする |
kohacraft | 0:eca549a6e38d | 271 | { |
kohacraft | 0:eca549a6e38d | 272 | paletteWhite = 0; //パレット0が白 |
kohacraft | 0:eca549a6e38d | 273 | } |
kohacraft | 0:eca549a6e38d | 274 | else |
kohacraft | 0:eca549a6e38d | 275 | { |
kohacraft | 0:eca549a6e38d | 276 | paletteWhite = 1; //パレット1が白 |
kohacraft | 0:eca549a6e38d | 277 | } |
kohacraft | 0:eca549a6e38d | 278 | |
kohacraft | 0:eca549a6e38d | 279 | //bmp画像データの先頭まで移動 |
kohacraft | 0:eca549a6e38d | 280 | unsigned int dataOffset; |
kohacraft | 0:eca549a6e38d | 281 | fseek(fp, 10 , SEEK_SET); |
kohacraft | 0:eca549a6e38d | 282 | size = fread( &dataOffset , sizeof(unsigned int) , 1 , fp); |
kohacraft | 0:eca549a6e38d | 283 | fseek(fp, dataOffset , SEEK_SET); |
kohacraft | 0:eca549a6e38d | 284 | |
kohacraft | 0:eca549a6e38d | 285 | pageStart(); |
kohacraft | 0:eca549a6e38d | 286 | |
kohacraft | 0:eca549a6e38d | 287 | //y座標の位置までスキップする |
kohacraft | 0:eca549a6e38d | 288 | for( int j=0 ; j<ypos ; j++) |
kohacraft | 0:eca549a6e38d | 289 | { |
kohacraft | 0:eca549a6e38d | 290 | lineStart(); |
kohacraft | 0:eca549a6e38d | 291 | for( int i=0 ; i<100 ; i++ ) |
kohacraft | 0:eca549a6e38d | 292 | drowPixelsRaw( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); |
kohacraft | 0:eca549a6e38d | 293 | changeSPH(); |
kohacraft | 0:eca549a6e38d | 294 | for( int i=0 ; i<100 ; i++ ) |
kohacraft | 0:eca549a6e38d | 295 | drowPixelsRaw( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); |
kohacraft | 0:eca549a6e38d | 296 | lineEnd(); |
kohacraft | 0:eca549a6e38d | 297 | } |
kohacraft | 0:eca549a6e38d | 298 | |
kohacraft | 0:eca549a6e38d | 299 | for( int j=ypos ; j<ysize+ypos ; j++) |
kohacraft | 0:eca549a6e38d | 300 | { |
kohacraft | 0:eca549a6e38d | 301 | lineStart(); |
kohacraft | 0:eca549a6e38d | 302 | |
kohacraft | 0:eca549a6e38d | 303 | for( int i=0 ; i<100 ; i+=2 ) |
kohacraft | 0:eca549a6e38d | 304 | { |
kohacraft | 0:eca549a6e38d | 305 | if( i>=(xpos/4) && i<((xsize+xpos)/4) ) |
kohacraft | 0:eca549a6e38d | 306 | { |
kohacraft | 0:eca549a6e38d | 307 | size = fread( &bmpdata , sizeof(char) , 1 , fp); |
kohacraft | 0:eca549a6e38d | 308 | if( size != 1 ) |
kohacraft | 0:eca549a6e38d | 309 | { |
kohacraft | 0:eca549a6e38d | 310 | drowPixelsRaw( 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 ); //読み込めない場合は白にする |
kohacraft | 0:eca549a6e38d | 311 | drowPixelsRaw( 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 ); |
kohacraft | 0:eca549a6e38d | 312 | } |
kohacraft | 0:eca549a6e38d | 313 | else |
kohacraft | 0:eca549a6e38d | 314 | { |
kohacraft | 0:eca549a6e38d | 315 | drowPixels(bmpdata,paletteWhite); |
kohacraft | 0:eca549a6e38d | 316 | } |
kohacraft | 0:eca549a6e38d | 317 | } |
kohacraft | 0:eca549a6e38d | 318 | else |
kohacraft | 0:eca549a6e38d | 319 | { |
kohacraft | 0:eca549a6e38d | 320 | drowPixelsRaw( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); //範囲以外なら変化なし |
kohacraft | 0:eca549a6e38d | 321 | drowPixelsRaw( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); |
kohacraft | 0:eca549a6e38d | 322 | } |
kohacraft | 0:eca549a6e38d | 323 | } |
kohacraft | 0:eca549a6e38d | 324 | changeSPH(); |
kohacraft | 0:eca549a6e38d | 325 | for( int i=100 ; i<200 ; i+=2 ) |
kohacraft | 0:eca549a6e38d | 326 | { |
kohacraft | 0:eca549a6e38d | 327 | if( i>=(xpos/4) && i<((xsize+xpos)/4) ) // |
kohacraft | 0:eca549a6e38d | 328 | { |
kohacraft | 0:eca549a6e38d | 329 | size = fread( &bmpdata , sizeof(char) , 1 , fp); |
kohacraft | 0:eca549a6e38d | 330 | if( size != 1 ) |
kohacraft | 0:eca549a6e38d | 331 | { |
kohacraft | 0:eca549a6e38d | 332 | drowPixelsRaw( 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 ); //読み込めない場合は白にする |
kohacraft | 0:eca549a6e38d | 333 | drowPixelsRaw( 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 ); |
kohacraft | 0:eca549a6e38d | 334 | } |
kohacraft | 0:eca549a6e38d | 335 | else |
kohacraft | 0:eca549a6e38d | 336 | { |
kohacraft | 0:eca549a6e38d | 337 | drowPixels(bmpdata,paletteWhite); |
kohacraft | 0:eca549a6e38d | 338 | } |
kohacraft | 0:eca549a6e38d | 339 | } |
kohacraft | 0:eca549a6e38d | 340 | else |
kohacraft | 0:eca549a6e38d | 341 | { |
kohacraft | 0:eca549a6e38d | 342 | drowPixelsRaw( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); //範囲以外なら変化なし |
kohacraft | 0:eca549a6e38d | 343 | drowPixelsRaw( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); |
kohacraft | 0:eca549a6e38d | 344 | } |
kohacraft | 0:eca549a6e38d | 345 | |
kohacraft | 0:eca549a6e38d | 346 | } |
kohacraft | 0:eca549a6e38d | 347 | |
kohacraft | 0:eca549a6e38d | 348 | //横800画素を超えた分のデータをパスする |
kohacraft | 0:eca549a6e38d | 349 | if( (xsize+xpos)>800 ) |
kohacraft | 0:eca549a6e38d | 350 | { |
kohacraft | 0:eca549a6e38d | 351 | int dataPass = ((xsize+xpos)-800)/8; |
kohacraft | 0:eca549a6e38d | 352 | fseek(fp, dataPass , SEEK_CUR); |
kohacraft | 0:eca549a6e38d | 353 | } |
kohacraft | 0:eca549a6e38d | 354 | |
kohacraft | 0:eca549a6e38d | 355 | lineEnd(); |
kohacraft | 0:eca549a6e38d | 356 | } |
kohacraft | 0:eca549a6e38d | 357 | |
kohacraft | 0:eca549a6e38d | 358 | //yの残りをスキップする |
kohacraft | 0:eca549a6e38d | 359 | for( int j=ypos+ysize ; j<600 ; j++) |
kohacraft | 0:eca549a6e38d | 360 | { |
kohacraft | 0:eca549a6e38d | 361 | lineStart(); |
kohacraft | 0:eca549a6e38d | 362 | for( int i=0 ; i<100 ; i++ ) |
kohacraft | 0:eca549a6e38d | 363 | drowPixelsRaw( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); //範囲以外なら変化なし |
kohacraft | 0:eca549a6e38d | 364 | changeSPH(); |
kohacraft | 0:eca549a6e38d | 365 | for( int i=0 ; i<100 ; i++ ) |
kohacraft | 0:eca549a6e38d | 366 | drowPixelsRaw( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ); //範囲以外なら変化なし |
kohacraft | 0:eca549a6e38d | 367 | lineEnd(); |
kohacraft | 0:eca549a6e38d | 368 | } |
kohacraft | 0:eca549a6e38d | 369 | |
kohacraft | 0:eca549a6e38d | 370 | pageEnd(); |
kohacraft | 0:eca549a6e38d | 371 | } |
kohacraft | 0:eca549a6e38d | 372 | |
kohacraft | 0:eca549a6e38d | 373 |