Browse Source

Alive, ME810A-HV35R running

James Bowman 6 years ago
parent
commit
20a9974bee
1 changed files with 59 additions and 23 deletions
  1. 59 23
      ili9488.ino

+ 59 - 23
ili9488.ino

@@ -1,12 +1,12 @@
-#include <EEPROM.h> //' A{
+#include <EEPROM.h>
 #include <SPI.h>
 #include <GD2.h>
 
 #define CSX 6   // chip select, active low
-#define DCX 2   // data/command select
-#define SCL 3   // clock, rising edge
-#define SDA 4   // data in to ILI9488
-#define SDO 5   // data out from ILI9488
+#define DCX 5   // data/command select
+#define SCL 13  // clock, rising edge
+#define SDA 11  // data in to ILI9488
+#define SDO 12  // data out from ILI9488
 
 #define ILI9488_CMD_READ_ID1                    0xDA
 #define ILI9488_CMD_READ_ID2                    0xDB
@@ -19,24 +19,66 @@
 
 void setup()
 {
-  Serial.begin(1000000); // JCB
+  Serial.begin(1000000);
 
   pinMode(CSX, OUTPUT);
+  digitalWrite(CSX, HIGH);
+
+  Serial.println("GD init");
+  gd_ili9488_init();
+
+  if (1) {
+    GD.__end();
+    SPI.end();
+
+    pinMode(DCX, OUTPUT);
+    pinMode(SCL, OUTPUT);
+    pinMode(SDA, OUTPUT);
+    pinMode(SDO, INPUT);
+
+    delay(100);
+
+    ili9488_report();
+    ili9488_rgb_mode();
+    ili9488_report();
+    SPI.begin();
+    GD.resume();
+  }
+
+}
+
+unsigned long t;
+
+void loop()
+{
+  GD.ClearColorRGB(0x103000);
+  GD.Clear();
+  GD.cmd_text(GD.w / 2, GD.h / 2, 31, OPT_CENTER, "Hello world");
+  GD.cmd_number(GD.w / 2, 3 * GD.h / 4, 31, OPT_CENTER, t++);
+  GD.swap();
+
+  /*
+  uint32_t f0 = GD.rd32(REG_FRAMES);
+  delay(1000);
+  uint32_t f1 = GD.rd32(REG_FRAMES);
+  Serial.println(f1 - f0);
+  GD.finish();
+  GD.__end();
+  SPI.end();
   pinMode(DCX, OUTPUT);
   pinMode(SCL, OUTPUT);
   pinMode(SDA, OUTPUT);
   pinMode(SDO, INPUT);
-
-  digitalWrite(CSX, HIGH);
-  delay(100);
-
-  ili9488_report();
-  ili9488_rgb_mode();
   ili9488_report();
+  SPI.begin();
+  GD.resume();
+  */
+}
 
-  Serial.println("GD init");
-  GD.begin(0);
-
+// Initialize GD for the ILI9488 
+void gd_ili9488_init()
+{
+  GD.begin(~GD_STORAGE);
   Serial.println("Setting video timing for ILI9488");
   GD.wr16(REG_HCYCLE,   400 );
   GD.wr16(REG_HOFFSET,  40  );
@@ -55,14 +97,8 @@ void setup()
   GD.wr16(REG_PCLK,     5   );
   GD.w = 320;
   GD.h = 480;
-}
-
-void loop()
-{
-  GD.ClearColorRGB(0x103000);
-  GD.Clear();
-  GD.cmd_text(GD.w / 2, GD.h / 2, 31, OPT_CENTER, "Hello world");
-  GD.swap();
+  Serial.print("ID: ");
+  Serial.println(GD.rd(REG_ID), HEX);
 }
 
 void out_8(uint8_t b)