Fixes for line numbers

Fork of AkiSpiLcd by Kazuki Yamamoto

Revision:
10:eed99ef09e63
Parent:
9:33d5888d1fb9
Child:
11:16647ecd67ce
--- a/AkiSpiLcd.cpp	Sun Sep 07 14:42:13 2014 +0000
+++ b/AkiSpiLcd.cpp	Mon Sep 15 14:12:33 2014 +0000
@@ -4,7 +4,7 @@
 
 #include "mbed.h"
 #include "AkiSpiLcd.h"
-#include "Ser23K256.h"
+//#include "Ser23K256.h"
 
 AkiSpiLcd::AkiSpiLcd(PinName mosi, PinName miso, PinName sck, PinName csl, PinName csr)
     :_spi(mosi, miso, sck), _csl(csl), _csr(csr)
@@ -13,23 +13,24 @@
     _csl=0;
     _csr=1;
     _spi.format(8,0);
-    _spi.frequency(1000000);
+    _spi.frequency(10000000);
     comflag = modeflag = clearflag = 0;
-
-    int data=0;
+    
+    uint8_t data[240];
     for(int i=0; i<240; i++) {
-        data=( ( i & 0x01 ) << 7 )|
-             ( ( i & 0x02 ) << 5 )|
-             ( ( i & 0x04 ) << 3 )|
-             ( ( i & 0x08 ) << 1 )|
-             ( ( i & 0x10 ) >> 1 )|
-             ( ( i & 0x20 ) >> 3 )|
-             ( ( i & 0x40 ) >> 5 )|
-             ( ( i & 0x80 ) >> 7 );
+        data[i]=( ( (i+1) & 0x01 ) << 7 )|
+             ( ( (i+1) & 0x02 ) << 5 )|
+             ( ( (i+1) & 0x04 ) << 3 )|
+             ( ( (i+1) & 0x08 ) << 1 )|
+             ( ( (i+1) & 0x10 ) >> 1 )|
+             ( ( (i+1) & 0x20 ) >> 3 )|
+             ( ( (i+1) & 0x40 ) >> 5 )|
+             ( ( (i+1) & 0x80 ) >> 7 );
 
-        ram_write(RAMLINE_BASE+i,(uint8_t)data);
     }
-    ram_write(RAMMODE_BASE,0x00000000,4);
+    ram_write(RAMLINE_BASE,data,240);
+    uint8_t buffer[4] = {0,0,0,0};
+    ram_write(RAMMODE_BASE,buffer,4);
 
 }
 
@@ -101,14 +102,14 @@
         for (int j=0; j<length; j++) {
             _spi.write( (modeflag << 7) | (comflag << 6) | (clearflag << 5) );
             _spi.write(
-                ( ( (line) & 0x01 ) << 7 )|
-                ( ( (line) & 0x02 ) << 5 )|
-                ( ( (line) & 0x04 ) << 3 )|
-                ( ( (line) & 0x08 ) << 1 )|
-                ( ( (line) & 0x10 ) >> 1 )|
-                ( ( (line) & 0x20 ) >> 3 )|
-                ( ( (line) & 0x40 ) >> 5 )|
-                ( ( (line) & 0x80 ) >> 7 )
+                ( ( (line+1) & 0x01 ) << 7 )|
+                ( ( (line+1) & 0x02 ) << 5 )|
+                ( ( (line+1) & 0x04 ) << 3 )|
+                ( ( (line+1) & 0x08 ) << 1 )|
+                ( ( (line+1) & 0x10 ) >> 1 )|
+                ( ( (line+1) & 0x20 ) >> 3 )|
+                ( ( (line+1) & 0x40 ) >> 5 )|
+                ( ( (line+1) & 0x80 ) >> 7 )
             );
 
             for(int i=0; i<50; i++) {