Dependencies:   mbed

Committer:
lynxeyed_atsu
Date:
Fri Jan 21 08:37:01 2011 +0000
Revision:
0:2c787ad08fad

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lynxeyed_atsu 0:2c787ad08fad 1 // ALO-095BWNN-J9 test program
lynxeyed_atsu 0:2c787ad08fad 2 // See also "http://www.aitendo.co.jp/product/2099"
lynxeyed_atsu 0:2c787ad08fad 3
lynxeyed_atsu 0:2c787ad08fad 4
lynxeyed_atsu 0:2c787ad08fad 5 #include "mbed.h"
lynxeyed_atsu 0:2c787ad08fad 6 #include "spioled.h"
lynxeyed_atsu 0:2c787ad08fad 7 #define countof(x) ( sizeof(x) / sizeof(x[0]) )
lynxeyed_atsu 0:2c787ad08fad 8
lynxeyed_atsu 0:2c787ad08fad 9 SPIOLED oled(p21, p22, p23, p5, p6, p7); //cs res dc mosi miso sck
lynxeyed_atsu 0:2c787ad08fad 10
lynxeyed_atsu 0:2c787ad08fad 11 bool kstate = false;
lynxeyed_atsu 0:2c787ad08fad 12 unsigned int kbuf;
lynxeyed_atsu 0:2c787ad08fad 13 unsigned char x_locale = 0;
lynxeyed_atsu 0:2c787ad08fad 14 unsigned char y_locale = 0;
lynxeyed_atsu 0:2c787ad08fad 15
lynxeyed_atsu 0:2c787ad08fad 16
lynxeyed_atsu 0:2c787ad08fad 17 unsigned int findface(unsigned short c){
lynxeyed_atsu 0:2c787ad08fad 18 unsigned int p = 0;
lynxeyed_atsu 0:2c787ad08fad 19 int i, sum;
lynxeyed_atsu 0:2c787ad08fad 20 for(sum = i = 0; i < countof(font8table); i++){
lynxeyed_atsu 0:2c787ad08fad 21 if(font8table[i].start <= c && c <= font8table[i].end){
lynxeyed_atsu 0:2c787ad08fad 22 p = (sum + c - font8table[i].start);
lynxeyed_atsu 0:2c787ad08fad 23 break;
lynxeyed_atsu 0:2c787ad08fad 24 }
lynxeyed_atsu 0:2c787ad08fad 25 sum += font8table[i].end - font8table[i].start + 1;
lynxeyed_atsu 0:2c787ad08fad 26 }
lynxeyed_atsu 0:2c787ad08fad 27 return p;
lynxeyed_atsu 0:2c787ad08fad 28 }
lynxeyed_atsu 0:2c787ad08fad 29
lynxeyed_atsu 0:2c787ad08fad 30 void drawc(unsigned char c){
lynxeyed_atsu 0:2c787ad08fad 31 if(kstate){ // 2nd byte of shift-jis
lynxeyed_atsu 0:2c787ad08fad 32 kstate = false;
lynxeyed_atsu 0:2c787ad08fad 33 unsigned int p = findface(kbuf << 8 | c);
lynxeyed_atsu 0:2c787ad08fad 34 oled.PutChar( x_locale , y_locale ,p);
lynxeyed_atsu 0:2c787ad08fad 35 // printf("%x %x\r\n",( kbuf << 8 | c),p); //for debug
lynxeyed_atsu 0:2c787ad08fad 36 x_locale += X_Witch;
lynxeyed_atsu 0:2c787ad08fad 37 if(x_locale + (X_Witch - 1) >= Dis_X_MAX){
lynxeyed_atsu 0:2c787ad08fad 38 x_locale = 0;
lynxeyed_atsu 0:2c787ad08fad 39 y_locale += Y_Witch;
lynxeyed_atsu 0:2c787ad08fad 40 if(y_locale >= Dis_Y_MAX)y_locale=0;
lynxeyed_atsu 0:2c787ad08fad 41 }
lynxeyed_atsu 0:2c787ad08fad 42
lynxeyed_atsu 0:2c787ad08fad 43 } else if((0x81 <= c && c <= 0x9f) || (0xe0 <= c && c <= 0xfc)){ // 1st byte of shift-jis
lynxeyed_atsu 0:2c787ad08fad 44 kstate = true;
lynxeyed_atsu 0:2c787ad08fad 45 kbuf = c;
lynxeyed_atsu 0:2c787ad08fad 46 } else {
lynxeyed_atsu 0:2c787ad08fad 47 oled.PutChar_ABC( x_locale , y_locale ,c);
lynxeyed_atsu 0:2c787ad08fad 48 x_locale += 6;
lynxeyed_atsu 0:2c787ad08fad 49 if(x_locale + (X_Witch - 1) >= Dis_X_MAX){
lynxeyed_atsu 0:2c787ad08fad 50 x_locale = 0;
lynxeyed_atsu 0:2c787ad08fad 51 y_locale += Y_Witch;
lynxeyed_atsu 0:2c787ad08fad 52 if(y_locale >= Dis_Y_MAX)y_locale=0;
lynxeyed_atsu 0:2c787ad08fad 53 }
lynxeyed_atsu 0:2c787ad08fad 54 }
lynxeyed_atsu 0:2c787ad08fad 55
lynxeyed_atsu 0:2c787ad08fad 56 }
lynxeyed_atsu 0:2c787ad08fad 57
lynxeyed_atsu 0:2c787ad08fad 58 void draws(unsigned char x, unsigned char y, char *s){
lynxeyed_atsu 0:2c787ad08fad 59 unsigned char c;
lynxeyed_atsu 0:2c787ad08fad 60 x_locale = x;
lynxeyed_atsu 0:2c787ad08fad 61 y_locale = y;
lynxeyed_atsu 0:2c787ad08fad 62 while((c = *s++) != '\0')drawc(c);
lynxeyed_atsu 0:2c787ad08fad 63 }
lynxeyed_atsu 0:2c787ad08fad 64
lynxeyed_atsu 0:2c787ad08fad 65
lynxeyed_atsu 0:2c787ad08fad 66
lynxeyed_atsu 0:2c787ad08fad 67 int main() {
lynxeyed_atsu 0:2c787ad08fad 68 LocalFileSystem local( "local" );
lynxeyed_atsu 0:2c787ad08fad 69 char s[ 256 ];
lynxeyed_atsu 0:2c787ad08fad 70 FILE *fp;
lynxeyed_atsu 0:2c787ad08fad 71
lynxeyed_atsu 0:2c787ad08fad 72 printf( "\r\nreading a message file.\r\n" );
lynxeyed_atsu 0:2c787ad08fad 73
lynxeyed_atsu 0:2c787ad08fad 74 if ( NULL == (fp = fopen( "/local/test.txt", "r" )) ) {
lynxeyed_atsu 0:2c787ad08fad 75 printf( "\r\nError: The message file cannot be accessed\r\n" );
lynxeyed_atsu 0:2c787ad08fad 76 return -1;
lynxeyed_atsu 0:2c787ad08fad 77 }
lynxeyed_atsu 0:2c787ad08fad 78
lynxeyed_atsu 0:2c787ad08fad 79 fgets( s, 256, fp );
lynxeyed_atsu 0:2c787ad08fad 80 fclose( fp );
lynxeyed_atsu 0:2c787ad08fad 81
lynxeyed_atsu 0:2c787ad08fad 82
lynxeyed_atsu 0:2c787ad08fad 83
lynxeyed_atsu 0:2c787ad08fad 84
lynxeyed_atsu 0:2c787ad08fad 85 while(1){
lynxeyed_atsu 0:2c787ad08fad 86 // OLED_Init();
lynxeyed_atsu 0:2c787ad08fad 87
lynxeyed_atsu 0:2c787ad08fad 88 oled.Full_Screen(0x0018); //full red color in OLED
lynxeyed_atsu 0:2c787ad08fad 89 // wait_ms(500);
lynxeyed_atsu 0:2c787ad08fad 90 oled.Full_Screen(0x07e0); //full green color in OLED
lynxeyed_atsu 0:2c787ad08fad 91 // wait_ms(500);
lynxeyed_atsu 0:2c787ad08fad 92 oled.Full_Screen(0xf800); //full blue color in OLED
lynxeyed_atsu 0:2c787ad08fad 93 // wait_ms(500);
lynxeyed_atsu 0:2c787ad08fad 94 oled.Full_Screen(0xffff); //full white color in OLED
lynxeyed_atsu 0:2c787ad08fad 95 wait_ms(500);
lynxeyed_atsu 0:2c787ad08fad 96
lynxeyed_atsu 0:2c787ad08fad 97
lynxeyed_atsu 0:2c787ad08fad 98
lynxeyed_atsu 0:2c787ad08fad 99
lynxeyed_atsu 0:2c787ad08fad 100 oled.ChangeFontColor(0);
lynxeyed_atsu 0:2c787ad08fad 101 draws(1,0,s);
lynxeyed_atsu 0:2c787ad08fad 102 wait_ms(5000);
lynxeyed_atsu 0:2c787ad08fad 103 oled.Full_Screen(0);
lynxeyed_atsu 0:2c787ad08fad 104 oled.ChangeFontColor(0xffff);
lynxeyed_atsu 0:2c787ad08fad 105 draws(1,0,s);
lynxeyed_atsu 0:2c787ad08fad 106 wait_ms(5000);
lynxeyed_atsu 0:2c787ad08fad 107 }
lynxeyed_atsu 0:2c787ad08fad 108 }