E-Paper GDE021A1 demo app

Dependencies:   BreathLed EPD_GDE021A1 GraphicUtil TFT_fonts mbed

Revision:
0:5f680d50c5a6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Apr 15 11:30:57 2015 +0000
@@ -0,0 +1,91 @@
+// Do not remove the include below
+#include "mbed.h"
+#include "EpdGDE021A1.h"
+#include "Arial12x12.h"
+#include "Arial24x23.h"
+#include "BreathLed.h"
+
+
+/*
+ * E-ink EPD module: GDE021A1 Built-in controller: SSD1606
+ *  http://www.good-display.cn/products_detail/&productId=158.html
+ *
+ * Connection:
+ * Mega128RFA1  LPC1678
+ *  NC
+ *  3V3         Vout
+ *  5V
+ *  GND         GND
+ *  GND
+ *  P2
+ *
+ *  NC
+ *  BS1             //SPI 4-line or 3 line(9bits)
+ *  BUSY            //busy
+ *  nRES        P10 //reset
+ *  nD/C        P9  //data/cmd
+ *  nCS         P8  //SPI cs
+ *  SCLK        P7  //SPI clock
+ *  SDA         P5  //SPI MOSI
+ *
+ * Warning:
+ *  SPI-0 is used, can't use the spare p6(miso) for other usage!
+ * SPI 3-wire:
+ *   Disconnect BS1 or pull-high, disconnect nD/C
+ *   don't pass "dc" in class constructor
+ *   Didn't work for me
+ *
+ */
+
+steeven::BreathLed led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+AnalogIn adc5(p20);
+AnalogIn adc4(p19);
+
+Serial pc(USBTX, USBRX);
+
+EpdGDE021A1 epd(p5, p7, p8, p9, p10);
+
+int main() {
+    int i = 0, j, h = 10, offset;
+
+    led1.loop();
+
+    pc.printf("clear\n");
+//  epd.g.clear();
+    for (i = 3; i >=0; i--) {
+        epd.color(i,3);
+        offset = (h + 2) * 3;
+        epd.rect(offset * 0 + (h + 2) * i, 1, offset * 0 + (h + 2) * i + h,
+                1 + h);
+        epd.fillrect(offset * 1 + (h + 2) * i, 1,
+                offset * 1 + (h + 2) * i + h, 1 + h);
+        epd.circle(offset * 2 + (h + 2) * i + h / 2, h / 2 + 1, h / 2);
+        epd.fillcircle(offset * 3 + (h + 2) * i + h / 2, h / 2 + 1, h / 2);
+        epd.line(80, 42+i, 170, 33 + i * 10);
+    }
+
+    epd.locate(0, h + 2);
+    epd.font(Arial24x23);
+    epd.print("Hello world\n");
+    epd.font(Arial12x12);
+    epd.print("Please input:\n> ");
+    epd.update();
+
+    while (1) {
+        j = 0;
+        led4 = !led4;
+        wait(0.5);
+        while (pc.readable()) {
+            epd.putc(pc.getc());
+            j++;
+        }
+        if (j){
+            epd.print("\n> ");
+            epd.update();
+        }
+    }
+}
+