Add support JIS X 0201.

Fork of GT20L16J1Y_font by Toyomasa Watarai

Revision:
0:61b32e34bcbf
Child:
2:aed20a7685b9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GT20L16Y1J_font.cpp	Tue Jan 14 07:36:32 2014 +0000
@@ -0,0 +1,52 @@
+#include "mbed.h"
+#include "GT20L16J1Y_font.h"
+
+GT20L16J1Y_FONT::GT20L16J1Y_FONT() : _spi(p11, p12, p13), _CS(p10) {
+}
+
+void GT20L16J1Y_FONT::read(unsigned short code) {
+    unsigned char  c1, c2, MSB,LSB;
+    uint32_t address, seq;
+    
+    // SJIS to kuten code conversion
+    c1 = (code>>8);
+    c2 = (code & 0xFF);
+    seq = (c1<=159 ? c1-129 : c1-193)*188 + (c2<=126 ? c2-64 : c2-65);
+    MSB = seq / 94 + 1;
+    LSB = seq % 94 + 1;
+    address = 0;
+    
+    if(     MSB >=  1 && MSB <= 15 && LSB >= 1 && LSB <= 94)
+        address =( (MSB -  1) * 94 + (LSB - 1))*32;
+    else if(MSB >= 16 && MSB <= 47 && LSB >= 1 && LSB <= 94)
+        address =( (MSB - 16) * 94 + (LSB - 1))*32 + 0x0AA40L;
+    else if(MSB >= 48 && MSB <= 84 && LSB >= 1 && LSB <= 94)
+        address = ((MSB - 48) * 94 + (LSB - 1))*32 + 0x21CDFL;
+    else if(MSB == 85 &&                LSB >= 1 && LSB <= 94)
+        address = ((MSB - 85) * 94 + (LSB - 1))*32 + 0x3C4A0L;
+    else if(MSB >= 88 && MSB <= 89 && LSB >= 1 && LSB <= 94)
+        address = ((MSB - 88) * 94 + (LSB - 1))*32 + 0x3D060L;
+    
+    // Deselect the device
+    _CS = 1;
+
+    // Setup the spi for 8 bit data, high steady state clock
+    _spi.format(8,3);
+    _spi.frequency(1000000); 
+    
+    // Select the device by seting chip select low
+    _CS = 0;
+    _spi.write(0x03);    // Read data byte
+    _spi.write(address>>16 & 0xff);
+    _spi.write(address>>8 & 0xff);
+    _spi.write(address & 0xff);
+    
+    // Send a dummy byte to receive the contents of the WHOAMI register
+    for(int i=0; i<32; i++)
+    {
+      bitmap[i] = _spi.write(0x00);
+    }
+
+    // Deselect the device
+    _CS = 1;
+}