This is a test program for the AitendoOLED driver class.
Dependencies: mbed AitendoOLED
main.cpp@0:4b4e6f2b4d6a, 2010-12-19 (annotated)
- Committer:
- shintamainjp
- Date:
- Sun Dec 19 07:48:40 2010 +0000
- Revision:
- 0:4b4e6f2b4d6a
Initial version.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |