This is a test program for the AitendoOLED driver class.

Dependencies:   mbed AitendoOLED

Committer:
shintamainjp
Date:
Sun Dec 19 07:48:40 2010 +0000
Revision:
0:4b4e6f2b4d6a
Initial version.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:4b4e6f2b4d6a 1 #include "mbed.h"
shintamainjp 0:4b4e6f2b4d6a 2 #include "AitendoOLED.h"
shintamainjp 0:4b4e6f2b4d6a 3
shintamainjp 0:4b4e6f2b4d6a 4 AitendoOLED oled(p5, p6, p7, p22, p21, p23);
shintamainjp 0:4b4e6f2b4d6a 5
shintamainjp 0:4b4e6f2b4d6a 6 typedef struct rect {
shintamainjp 0:4b4e6f2b4d6a 7 int w;
shintamainjp 0:4b4e6f2b4d6a 8 int h;
shintamainjp 0:4b4e6f2b4d6a 9 int x;
shintamainjp 0:4b4e6f2b4d6a 10 int y;
shintamainjp 0:4b4e6f2b4d6a 11 int dx;
shintamainjp 0:4b4e6f2b4d6a 12 int dy;
shintamainjp 0:4b4e6f2b4d6a 13 AitendoOLED::Color c;
shintamainjp 0:4b4e6f2b4d6a 14 } rect_t;
shintamainjp 0:4b4e6f2b4d6a 15
shintamainjp 0:4b4e6f2b4d6a 16 int main() {
shintamainjp 0:4b4e6f2b4d6a 17 const int SCRX = 96;
shintamainjp 0:4b4e6f2b4d6a 18 const int SCRY = 64;
shintamainjp 0:4b4e6f2b4d6a 19 const int RECTCNT = 8;
shintamainjp 0:4b4e6f2b4d6a 20 rect_t rectlist[RECTCNT] = {
shintamainjp 0:4b4e6f2b4d6a 21 { .w = 10, .h = 10, .x = 0, .y = 0, .dx = 1, .dy = 1, .c.r = 0x80, .c.g = 0x00, .c.b = 0x00 },
shintamainjp 0:4b4e6f2b4d6a 22 { .w = 10, .h = 10, .x = 10, .y = 0, .dx = 1, .dy = 1, .c.r = 0xFF, .c.g = 0x00, .c.b = 0x00 },
shintamainjp 0:4b4e6f2b4d6a 23 { .w = 10, .h = 10, .x = 20, .y = 0, .dx = 1, .dy = 1, .c.r = 0x00, .c.g = 0x80, .c.b = 0x00 },
shintamainjp 0:4b4e6f2b4d6a 24 { .w = 10, .h = 10, .x = 30, .y = 0, .dx = 1, .dy = 1, .c.r = 0x00, .c.g = 0xFF, .c.b = 0x00 },
shintamainjp 0:4b4e6f2b4d6a 25 { .w = 10, .h = 10, .x = 0, .y = 0, .dx = 1, .dy = 1, .c.r = 0x00, .c.g = 0x00, .c.b = 0x80 },
shintamainjp 0:4b4e6f2b4d6a 26 { .w = 10, .h = 10, .x = 0, .y = 10, .dx = 1, .dy = 1, .c.r = 0x00, .c.g = 0x00, .c.b = 0xFF },
shintamainjp 0:4b4e6f2b4d6a 27 { .w = 10, .h = 10, .x = 0, .y = 20, .dx = 1, .dy = 1, .c.r = 0x80, .c.g = 0x80, .c.b = 0x00 },
shintamainjp 0:4b4e6f2b4d6a 28 { .w = 10, .h = 10, .x = 0, .y = 30, .dx = 1, .dy = 1, .c.r = 0xFF, .c.g = 0xFF, .c.b = 0x00 }
shintamainjp 0:4b4e6f2b4d6a 29 };
shintamainjp 0:4b4e6f2b4d6a 30 AitendoOLED::Color white;
shintamainjp 0:4b4e6f2b4d6a 31 white.r = 0xff;
shintamainjp 0:4b4e6f2b4d6a 32 white.g = 0xff;
shintamainjp 0:4b4e6f2b4d6a 33 white.b = 0xff;
shintamainjp 0:4b4e6f2b4d6a 34 oled.clear(0, 0, SCRX - 1, SCRY - 1);
shintamainjp 0:4b4e6f2b4d6a 35 oled.drawLine(0, 0, SCRX -1, SCRY - 1, white);
shintamainjp 0:4b4e6f2b4d6a 36 oled.drawLine(0, SCRY - 1, SCRX -1, 0, white);
shintamainjp 0:4b4e6f2b4d6a 37 wait(5);
shintamainjp 0:4b4e6f2b4d6a 38
shintamainjp 0:4b4e6f2b4d6a 39 while (1) {
shintamainjp 0:4b4e6f2b4d6a 40 oled.clear(0, 0, SCRX - 1, SCRY - 1);
shintamainjp 0:4b4e6f2b4d6a 41 for (int i = 0; i < RECTCNT; i++) {
shintamainjp 0:4b4e6f2b4d6a 42 rect_t *rp = &rectlist[i];
shintamainjp 0:4b4e6f2b4d6a 43 rp->x += rp->dx;
shintamainjp 0:4b4e6f2b4d6a 44 rp->y += rp->dy;
shintamainjp 0:4b4e6f2b4d6a 45 if (SCRX - rp->w <= rp->x) {
shintamainjp 0:4b4e6f2b4d6a 46 rp->dx = -1;
shintamainjp 0:4b4e6f2b4d6a 47 }
shintamainjp 0:4b4e6f2b4d6a 48 if (rp->x <= 0) {
shintamainjp 0:4b4e6f2b4d6a 49 rp->dx = 1;
shintamainjp 0:4b4e6f2b4d6a 50 }
shintamainjp 0:4b4e6f2b4d6a 51 if (SCRY - rp->h <= rp->y) {
shintamainjp 0:4b4e6f2b4d6a 52 rp->dy = -1;
shintamainjp 0:4b4e6f2b4d6a 53 }
shintamainjp 0:4b4e6f2b4d6a 54 if (rp->y <= 0) {
shintamainjp 0:4b4e6f2b4d6a 55 rp->dy = 1;
shintamainjp 0:4b4e6f2b4d6a 56 }
shintamainjp 0:4b4e6f2b4d6a 57 oled.fillBox(rp->x, rp->y, rp->x + rp->w - 1, rp->y + rp->h - 1, rp->c, rp->c);
shintamainjp 0:4b4e6f2b4d6a 58 }
shintamainjp 0:4b4e6f2b4d6a 59 wait_ms(10);
shintamainjp 0:4b4e6f2b4d6a 60 }
shintamainjp 0:4b4e6f2b4d6a 61 }