電子ペーパーで所在を表示しておくプレートのプログラムです

Dependencies:   SDFileSystem mbed

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?

UserRevisionLine numberNew 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