E-Paper GDE021A1 demo app

Dependencies:   BreathLed EPD_GDE021A1 GraphicUtil TFT_fonts mbed

Committer:
steeven
Date:
Wed Apr 15 11:30:57 2015 +0000
Revision:
0:5f680d50c5a6
init;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
steeven 0:5f680d50c5a6 1 // Do not remove the include below
steeven 0:5f680d50c5a6 2 #include "mbed.h"
steeven 0:5f680d50c5a6 3 #include "EpdGDE021A1.h"
steeven 0:5f680d50c5a6 4 #include "Arial12x12.h"
steeven 0:5f680d50c5a6 5 #include "Arial24x23.h"
steeven 0:5f680d50c5a6 6 #include "BreathLed.h"
steeven 0:5f680d50c5a6 7
steeven 0:5f680d50c5a6 8
steeven 0:5f680d50c5a6 9 /*
steeven 0:5f680d50c5a6 10 * E-ink EPD module: GDE021A1 Built-in controller: SSD1606
steeven 0:5f680d50c5a6 11 * http://www.good-display.cn/products_detail/&productId=158.html
steeven 0:5f680d50c5a6 12 *
steeven 0:5f680d50c5a6 13 * Connection:
steeven 0:5f680d50c5a6 14 * Mega128RFA1 LPC1678
steeven 0:5f680d50c5a6 15 * NC
steeven 0:5f680d50c5a6 16 * 3V3 Vout
steeven 0:5f680d50c5a6 17 * 5V
steeven 0:5f680d50c5a6 18 * GND GND
steeven 0:5f680d50c5a6 19 * GND
steeven 0:5f680d50c5a6 20 * P2
steeven 0:5f680d50c5a6 21 *
steeven 0:5f680d50c5a6 22 * NC
steeven 0:5f680d50c5a6 23 * BS1 //SPI 4-line or 3 line(9bits)
steeven 0:5f680d50c5a6 24 * BUSY //busy
steeven 0:5f680d50c5a6 25 * nRES P10 //reset
steeven 0:5f680d50c5a6 26 * nD/C P9 //data/cmd
steeven 0:5f680d50c5a6 27 * nCS P8 //SPI cs
steeven 0:5f680d50c5a6 28 * SCLK P7 //SPI clock
steeven 0:5f680d50c5a6 29 * SDA P5 //SPI MOSI
steeven 0:5f680d50c5a6 30 *
steeven 0:5f680d50c5a6 31 * Warning:
steeven 0:5f680d50c5a6 32 * SPI-0 is used, can't use the spare p6(miso) for other usage!
steeven 0:5f680d50c5a6 33 * SPI 3-wire:
steeven 0:5f680d50c5a6 34 * Disconnect BS1 or pull-high, disconnect nD/C
steeven 0:5f680d50c5a6 35 * don't pass "dc" in class constructor
steeven 0:5f680d50c5a6 36 * Didn't work for me
steeven 0:5f680d50c5a6 37 *
steeven 0:5f680d50c5a6 38 */
steeven 0:5f680d50c5a6 39
steeven 0:5f680d50c5a6 40 steeven::BreathLed led1(LED1);
steeven 0:5f680d50c5a6 41 DigitalOut led2(LED2);
steeven 0:5f680d50c5a6 42 DigitalOut led3(LED3);
steeven 0:5f680d50c5a6 43 DigitalOut led4(LED4);
steeven 0:5f680d50c5a6 44 AnalogIn adc5(p20);
steeven 0:5f680d50c5a6 45 AnalogIn adc4(p19);
steeven 0:5f680d50c5a6 46
steeven 0:5f680d50c5a6 47 Serial pc(USBTX, USBRX);
steeven 0:5f680d50c5a6 48
steeven 0:5f680d50c5a6 49 EpdGDE021A1 epd(p5, p7, p8, p9, p10);
steeven 0:5f680d50c5a6 50
steeven 0:5f680d50c5a6 51 int main() {
steeven 0:5f680d50c5a6 52 int i = 0, j, h = 10, offset;
steeven 0:5f680d50c5a6 53
steeven 0:5f680d50c5a6 54 led1.loop();
steeven 0:5f680d50c5a6 55
steeven 0:5f680d50c5a6 56 pc.printf("clear\n");
steeven 0:5f680d50c5a6 57 // epd.g.clear();
steeven 0:5f680d50c5a6 58 for (i = 3; i >=0; i--) {
steeven 0:5f680d50c5a6 59 epd.color(i,3);
steeven 0:5f680d50c5a6 60 offset = (h + 2) * 3;
steeven 0:5f680d50c5a6 61 epd.rect(offset * 0 + (h + 2) * i, 1, offset * 0 + (h + 2) * i + h,
steeven 0:5f680d50c5a6 62 1 + h);
steeven 0:5f680d50c5a6 63 epd.fillrect(offset * 1 + (h + 2) * i, 1,
steeven 0:5f680d50c5a6 64 offset * 1 + (h + 2) * i + h, 1 + h);
steeven 0:5f680d50c5a6 65 epd.circle(offset * 2 + (h + 2) * i + h / 2, h / 2 + 1, h / 2);
steeven 0:5f680d50c5a6 66 epd.fillcircle(offset * 3 + (h + 2) * i + h / 2, h / 2 + 1, h / 2);
steeven 0:5f680d50c5a6 67 epd.line(80, 42+i, 170, 33 + i * 10);
steeven 0:5f680d50c5a6 68 }
steeven 0:5f680d50c5a6 69
steeven 0:5f680d50c5a6 70 epd.locate(0, h + 2);
steeven 0:5f680d50c5a6 71 epd.font(Arial24x23);
steeven 0:5f680d50c5a6 72 epd.print("Hello world\n");
steeven 0:5f680d50c5a6 73 epd.font(Arial12x12);
steeven 0:5f680d50c5a6 74 epd.print("Please input:\n> ");
steeven 0:5f680d50c5a6 75 epd.update();
steeven 0:5f680d50c5a6 76
steeven 0:5f680d50c5a6 77 while (1) {
steeven 0:5f680d50c5a6 78 j = 0;
steeven 0:5f680d50c5a6 79 led4 = !led4;
steeven 0:5f680d50c5a6 80 wait(0.5);
steeven 0:5f680d50c5a6 81 while (pc.readable()) {
steeven 0:5f680d50c5a6 82 epd.putc(pc.getc());
steeven 0:5f680d50c5a6 83 j++;
steeven 0:5f680d50c5a6 84 }
steeven 0:5f680d50c5a6 85 if (j){
steeven 0:5f680d50c5a6 86 epd.print("\n> ");
steeven 0:5f680d50c5a6 87 epd.update();
steeven 0:5f680d50c5a6 88 }
steeven 0:5f680d50c5a6 89 }
steeven 0:5f680d50c5a6 90 }
steeven 0:5f680d50c5a6 91