Kazuhiro Ouchi
/
VFD_fontx2_test1
VFD(FUTABA GP1059A01)にFONTX2形式の16ドットフォントを表示します。
Diff: main.cpp
- Revision:
- 1:c40b9c81a2ba
- Parent:
- 0:f4f140765442
--- a/main.cpp Thu Nov 03 10:44:37 2011 +0000 +++ b/main.cpp Sat Nov 12 05:47:37 2011 +0000 @@ -5,13 +5,13 @@ #include "vfd_gp1059.h" /* -===================== -GP1059A01(I/O) ---------------------- +========================= +FUTABA VFD GP1059A01(I/O) +------------------------- p9 1 (D0) I/O -p10 2 (D1) I/O -p11 3 (D2) I/O -p12 4 (D3) I/O +p10 2 (D1) I/O +p11 3 (D2) I/O +p12 4 (D3) I/O p13 5 (D4) I/O p14 6 (D5) I/O p15 7 (D6) I/O @@ -39,7 +39,6 @@ DigitalOut led3(LED3); DigitalOut led4(LED4); - const uint8_t LOW = 0; unsigned char reverse_bit(unsigned char x){ @@ -53,9 +52,6 @@ return(y); } - - - // // FONTX2 test routine // @gingaxx @@ -67,26 +63,24 @@ int cx = 0; int cy = 0; -int offsety = 0; -bool kstate = false; -unsigned char kbuf; - +//int offsety = 0; +//bool kstate = false; +//unsigned char kbuf; - FILE *fp; //File open buffer +FILE *fp; // File open buffer - unsigned short start[92], end[92]; - unsigned char font[64]; +unsigned short start[92], end[92]; // table +unsigned char font[64]; // kanji image read buffer - char Identifier[6+1]; - char FontName[8+1]; - unsigned char XSize; - unsigned char YSize; - unsigned char Size; - unsigned char CodeType; - unsigned char Tnum; +char Identifier[6+1]; // 00-05 "FONTX2" +char FontName[8+1]; // 06-13 Font name +unsigned char XSize; // 14 +unsigned char YSize; // 15 +unsigned char CodeType; // 16 0:ASCII, 1:KANJI +unsigned char Tnum; // 17 Table entry number -#define FONT_XBYTE ((XSize + 7) >> 3) -#define FONT_YBYTE ((YSize + 7) >> 3) +//#define FONT_XBYTE ((XSize + 7) >> 3) +//#define FONT_YBYTE ((YSize + 7) >> 3) void kanji_init(){ //move cursor @@ -113,9 +107,9 @@ printf("Tnum: %d\n\r",Tnum); // Table read - for(int a=0;a< Tnum ;a++){ - fread(&start[a],1,2,fp); - fread(&end[a] ,1,2,fp); + for (int a = 0; a < Tnum; a++){ + fread(&start[a], 1, 2, fp); + fread(&end[a] , 1, 2, fp); } } @@ -124,22 +118,22 @@ const unsigned char bit_chk[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; - //kanji address + // calculate kanji address int c = 0; int adrs = 0; while(cr > start[c]){ - if(cr > end[c]){ - adrs += end[c]-start[c]+1; + if (cr > end[c]){ + adrs += end[c] - start[c] + 1; } else { adrs += cr - start[c]; } c++; } c--; - printf("C=%d,adrs=%d cr=%X \r\n",c,adrs,cr); + printf("cr=%X, table num=%d, adrs=%d \r\n",cr,c,adrs); // Kanji image Read - fseek( fp, Tnum*4+18+32*adrs, SEEK_SET ); + fseek( fp, Tnum * 4 + 18 + 32 * adrs, SEEK_SET ); fread( &font, 1, 32, fp); // debug dump