xeye_ atsu
/
SPIOLEDaitendo
main.cpp@0:2c787ad08fad, 2011-01-21 (annotated)
- Committer:
- lynxeyed_atsu
- Date:
- Fri Jan 21 08:37:01 2011 +0000
- Revision:
- 0:2c787ad08fad
Who changed what in which revision?
User | Revision | Line number | New 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 | } |