An example program of OLEDaccel library.

Dependencies:   OLEDaccel mbed

Fork of OLEDexample by Hideki Kozima

Committer:
xkozima
Date:
Fri Aug 17 15:04:54 2012 +0000
Revision:
0:d81cf815a15a
Child:
2:a49c7380f7f3
An example program that uses OLEDaccel (a library for 96x64 OLED with SSD1332 graphic accelerator).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xkozima 0:d81cf815a15a 1 #include "mbed.h"
xkozima 0:d81cf815a15a 2 #include "OLED.h"
xkozima 0:d81cf815a15a 3 #include "image.h" // xkozima's image (96x64@24bpp)
xkozima 0:d81cf815a15a 4
xkozima 0:d81cf815a15a 5 OLED display(p16, p14, p15, p11, p13);
xkozima 0:d81cf815a15a 6 AnalogIn ain(p20);
xkozima 0:d81cf815a15a 7
xkozima 0:d81cf815a15a 8 int main() {
xkozima 0:d81cf815a15a 9 // radomize
xkozima 0:d81cf815a15a 10 srand(ain.read_u16());
xkozima 0:d81cf815a15a 11
xkozima 0:d81cf815a15a 12 // infinite loop
xkozima 0:d81cf815a15a 13 while(1) {
xkozima 0:d81cf815a15a 14 //
xkozima 0:d81cf815a15a 15 // caption
xkozima 0:d81cf815a15a 16 display.text( 0, 12, "Accelerated OLED", display.color(128, 255, 128) );
xkozima 0:d81cf815a15a 17 display.text( 9, 40, "xkozima (MYU)", display.color(128, 255, 128));
xkozima 0:d81cf815a15a 18 display.text(18, 50, "(Aug 2012)", display.color(128, 255, 128));
xkozima 0:d81cf815a15a 19 wait_ms(4000);
xkozima 0:d81cf815a15a 20 display.clear(0);
xkozima 0:d81cf815a15a 21 //
xkozima 0:d81cf815a15a 22 // random rectangles/filled
xkozima 0:d81cf815a15a 23 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 24 for (int c = 0; c < 32; c++) {
xkozima 0:d81cf815a15a 25 int cx, cy, x, y, w, h;
xkozima 0:d81cf815a15a 26 // center
xkozima 0:d81cf815a15a 27 cx = rand() % 96;
xkozima 0:d81cf815a15a 28 cy = rand() % 64;
xkozima 0:d81cf815a15a 29 // size
xkozima 0:d81cf815a15a 30 w = rand() % 30 + 6;
xkozima 0:d81cf815a15a 31 h = rand() % 20 + 4;
xkozima 0:d81cf815a15a 32 // upper-left
xkozima 0:d81cf815a15a 33 x = cx - w / 2;
xkozima 0:d81cf815a15a 34 y = cy - h / 2;
xkozima 0:d81cf815a15a 35 if (x < 0) x = 0;
xkozima 0:d81cf815a15a 36 if (y < 0) y = 0;
xkozima 0:d81cf815a15a 37 // adjust size
xkozima 0:d81cf815a15a 38 if (x + w > 96) w = 96 - x;
xkozima 0:d81cf815a15a 39 if (y + h > 64) h = 64 - y;
xkozima 0:d81cf815a15a 40 // random color
xkozima 0:d81cf815a15a 41 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 42 // fill rectangle
xkozima 0:d81cf815a15a 43 display.rect(x, y, w, h, display.color(c1, c2, c3), 1);
xkozima 0:d81cf815a15a 44 }
xkozima 0:d81cf815a15a 45 // watch the result!
xkozima 0:d81cf815a15a 46 wait_ms(500);
xkozima 0:d81cf815a15a 47 display.clear(0);
xkozima 0:d81cf815a15a 48 }
xkozima 0:d81cf815a15a 49 // random rectangles/outlined
xkozima 0:d81cf815a15a 50 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 51 for (int c = 0; c < 32; c++) {
xkozima 0:d81cf815a15a 52 int cx, cy, x, y, w, h;
xkozima 0:d81cf815a15a 53 // center
xkozima 0:d81cf815a15a 54 cx = rand() % 96;
xkozima 0:d81cf815a15a 55 cy = rand() % 64;
xkozima 0:d81cf815a15a 56 // size
xkozima 0:d81cf815a15a 57 w = rand() % 30 + 6;
xkozima 0:d81cf815a15a 58 h = rand() % 20 + 4;
xkozima 0:d81cf815a15a 59 // upper-left
xkozima 0:d81cf815a15a 60 x = cx - w / 2;
xkozima 0:d81cf815a15a 61 y = cy - h / 2;
xkozima 0:d81cf815a15a 62 if (x < 0) x = 0;
xkozima 0:d81cf815a15a 63 if (y < 0) y = 0;
xkozima 0:d81cf815a15a 64 // adjust size
xkozima 0:d81cf815a15a 65 if (x + w > 96) w = 96 - x;
xkozima 0:d81cf815a15a 66 if (y + h > 64) h = 64 - y;
xkozima 0:d81cf815a15a 67 // random color
xkozima 0:d81cf815a15a 68 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 69 // draw rectangle
xkozima 0:d81cf815a15a 70 display.rect(x, y, w, h, display.color(c1, c2, c3), 0);
xkozima 0:d81cf815a15a 71 }
xkozima 0:d81cf815a15a 72 // watch the result!
xkozima 0:d81cf815a15a 73 wait_ms(500);
xkozima 0:d81cf815a15a 74 display.clear(0);
xkozima 0:d81cf815a15a 75 }
xkozima 0:d81cf815a15a 76 // random circles/filled
xkozima 0:d81cf815a15a 77 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 78 for (int c = 0; c < 32; c++) {
xkozima 0:d81cf815a15a 79 // coordinates
xkozima 0:d81cf815a15a 80 int x = rand() % 90 + 3, y = rand() % 60 + 2, r = rand() % 20 + 1;
xkozima 0:d81cf815a15a 81 if (x - r < 0) r = x;
xkozima 0:d81cf815a15a 82 if (x + r > 95) r = 95 - x;
xkozima 0:d81cf815a15a 83 if (y - r < 0) r = y;
xkozima 0:d81cf815a15a 84 if (y + r > 63) r = 63 - y;
xkozima 0:d81cf815a15a 85 // random color
xkozima 0:d81cf815a15a 86 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 87 // draw line
xkozima 0:d81cf815a15a 88 display.circle(x, y, r, display.color(c1, c2, c3), 1);
xkozima 0:d81cf815a15a 89 }
xkozima 0:d81cf815a15a 90 // watch the result!
xkozima 0:d81cf815a15a 91 wait_ms(500);
xkozima 0:d81cf815a15a 92 display.clear(0);
xkozima 0:d81cf815a15a 93 }
xkozima 0:d81cf815a15a 94 // random circles/outlined
xkozima 0:d81cf815a15a 95 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 96 for (int c = 0; c < 32; c++) {
xkozima 0:d81cf815a15a 97 // coordinates
xkozima 0:d81cf815a15a 98 int x = rand() % 90 + 3, y = rand() % 60 + 2, r = rand() % 20 + 1;
xkozima 0:d81cf815a15a 99 if (x - r < 0) r = x;
xkozima 0:d81cf815a15a 100 if (x + r > 95) r = 95 - x;
xkozima 0:d81cf815a15a 101 if (y - r < 0) r = y;
xkozima 0:d81cf815a15a 102 if (y + r > 63) r = 63 - y;
xkozima 0:d81cf815a15a 103 // random color
xkozima 0:d81cf815a15a 104 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 105 // draw line
xkozima 0:d81cf815a15a 106 display.circle(x, y, r, display.color(c1, c2, c3), 0);
xkozima 0:d81cf815a15a 107 }
xkozima 0:d81cf815a15a 108 // watch the result!
xkozima 0:d81cf815a15a 109 wait_ms(500);
xkozima 0:d81cf815a15a 110 display.clear(0);
xkozima 0:d81cf815a15a 111 }
xkozima 0:d81cf815a15a 112 // random ellipses/filled
xkozima 0:d81cf815a15a 113 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 114 for (int c = 0; c < 32; c++) {
xkozima 0:d81cf815a15a 115 // coordinates
xkozima 0:d81cf815a15a 116 int x = rand() % 90 + 3, y = rand() % 60 + 2,
xkozima 0:d81cf815a15a 117 rx = rand() % 20 + 1, ry = rand() % 20 + 1;
xkozima 0:d81cf815a15a 118 if (x - rx < 0) rx = x;
xkozima 0:d81cf815a15a 119 if (x + rx > 95) rx = 95 - x;
xkozima 0:d81cf815a15a 120 if (y - ry < 0) ry = y;
xkozima 0:d81cf815a15a 121 if (y + ry > 63) ry = 63 - y;
xkozima 0:d81cf815a15a 122 // random color
xkozima 0:d81cf815a15a 123 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 124 // draw line
xkozima 0:d81cf815a15a 125 display.ellipse(x, y, rx, ry, display.color(c1, c2, c3), 1);
xkozima 0:d81cf815a15a 126 }
xkozima 0:d81cf815a15a 127 // watch the result!
xkozima 0:d81cf815a15a 128 wait_ms(500);
xkozima 0:d81cf815a15a 129 display.clear(0);
xkozima 0:d81cf815a15a 130 }
xkozima 0:d81cf815a15a 131 // random ellipses/outlined
xkozima 0:d81cf815a15a 132 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 133 for (int c = 0; c < 32; c++) {
xkozima 0:d81cf815a15a 134 // coordinates
xkozima 0:d81cf815a15a 135 int x = rand() % 90 + 3, y = rand() % 60 + 2,
xkozima 0:d81cf815a15a 136 rx = rand() % 20 + 1, ry = rand() % 20 + 1;
xkozima 0:d81cf815a15a 137 if (x - rx < 0) rx = x;
xkozima 0:d81cf815a15a 138 if (x + rx > 95) rx = 95 - x;
xkozima 0:d81cf815a15a 139 if (y - ry < 0) ry = y;
xkozima 0:d81cf815a15a 140 if (y + ry > 63) ry = 63 - y;
xkozima 0:d81cf815a15a 141 // random color
xkozima 0:d81cf815a15a 142 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 143 // draw line
xkozima 0:d81cf815a15a 144 display.ellipse(x, y, rx, ry, display.color(c1, c2, c3), 0);
xkozima 0:d81cf815a15a 145 }
xkozima 0:d81cf815a15a 146 // watch the result!
xkozima 0:d81cf815a15a 147 wait_ms(500);
xkozima 0:d81cf815a15a 148 display.clear(0);
xkozima 0:d81cf815a15a 149 }
xkozima 0:d81cf815a15a 150 // random lines
xkozima 0:d81cf815a15a 151 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 152 for (int c = 0; c < 32; c++) {
xkozima 0:d81cf815a15a 153 // coordinates
xkozima 0:d81cf815a15a 154 int x1 = rand() % 96, y1 = rand() % 64, x2 = rand() % 96, y2 = rand() % 64;
xkozima 0:d81cf815a15a 155 // random color
xkozima 0:d81cf815a15a 156 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 157 // draw line
xkozima 0:d81cf815a15a 158 display.line(x1, y1, x2, y2, display.color(c1, c2, c3));
xkozima 0:d81cf815a15a 159 }
xkozima 0:d81cf815a15a 160 // watch the result!
xkozima 0:d81cf815a15a 161 wait_ms(500);
xkozima 0:d81cf815a15a 162 display.clear(0);
xkozima 0:d81cf815a15a 163 }
xkozima 0:d81cf815a15a 164 // random points
xkozima 0:d81cf815a15a 165 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 166 for (int c = 0; c < 1000; c++) {
xkozima 0:d81cf815a15a 167 // coordinates
xkozima 0:d81cf815a15a 168 int x = rand() % 96, y = rand() % 64;
xkozima 0:d81cf815a15a 169 // random color
xkozima 0:d81cf815a15a 170 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 171 // draw line
xkozima 0:d81cf815a15a 172 display.point(x, y, display.color(c1, c2, c3));
xkozima 0:d81cf815a15a 173 }
xkozima 0:d81cf815a15a 174 // watch the result!
xkozima 0:d81cf815a15a 175 wait_ms(500);
xkozima 0:d81cf815a15a 176 display.clear(0);
xkozima 0:d81cf815a15a 177 }
xkozima 0:d81cf815a15a 178 // random text
xkozima 0:d81cf815a15a 179 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 180 for (int c = 0; c < 10; c++) {
xkozima 0:d81cf815a15a 181 // coordinates
xkozima 0:d81cf815a15a 182 int x = rand() % (96 - 18), y = rand() % (64 - 8);
xkozima 0:d81cf815a15a 183 // text
xkozima 0:d81cf815a15a 184 char string[4];
xkozima 0:d81cf815a15a 185 string[0] = 'A' + rand() % 26;
xkozima 0:d81cf815a15a 186 string[1] = 'a' + rand() % 26;
xkozima 0:d81cf815a15a 187 string[2] = '0' + rand() % 10;
xkozima 0:d81cf815a15a 188 string[3] = '\0';
xkozima 0:d81cf815a15a 189 // random color
xkozima 0:d81cf815a15a 190 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 191 // draw text
xkozima 0:d81cf815a15a 192 display.text(x, y, string, display.color(c1, c2, c3));
xkozima 0:d81cf815a15a 193 }
xkozima 0:d81cf815a15a 194 // watch the result!
xkozima 0:d81cf815a15a 195 wait_ms(500);
xkozima 0:d81cf815a15a 196 display.clear(0);
xkozima 0:d81cf815a15a 197 }
xkozima 0:d81cf815a15a 198 // random text (with background)
xkozima 0:d81cf815a15a 199 for (int k = 0; k < 8; k++) {
xkozima 0:d81cf815a15a 200 for (int c = 0; c < 10; c++) {
xkozima 0:d81cf815a15a 201 // coordinates
xkozima 0:d81cf815a15a 202 int x = rand() % (96 - 18), y = rand() % (64 - 8);
xkozima 0:d81cf815a15a 203 // text
xkozima 0:d81cf815a15a 204 char string[4];
xkozima 0:d81cf815a15a 205 string[0] = 'A' + rand() % 26;
xkozima 0:d81cf815a15a 206 string[1] = 'a' + rand() % 26;
xkozima 0:d81cf815a15a 207 string[2] = '0' + rand() % 10;
xkozima 0:d81cf815a15a 208 string[3] = '\0';
xkozima 0:d81cf815a15a 209 // random color
xkozima 0:d81cf815a15a 210 int f1 = rand() % 256, f2 = rand() % 256, f3 = rand() % 256;
xkozima 0:d81cf815a15a 211 int b1 = rand() % 256, b2 = rand() % 256, b3 = rand() % 256;
xkozima 0:d81cf815a15a 212 // draw text
xkozima 0:d81cf815a15a 213 display.text(x, y, string, display.color(f1, f2, f3), display.color(b1, b2, b3));
xkozima 0:d81cf815a15a 214 }
xkozima 0:d81cf815a15a 215 // watch the result!
xkozima 0:d81cf815a15a 216 wait_ms(500);
xkozima 0:d81cf815a15a 217 display.clear(0);
xkozima 0:d81cf815a15a 218 }
xkozima 0:d81cf815a15a 219 //
xkozima 0:d81cf815a15a 220 // slow to fast (rectangles/filled)
xkozima 0:d81cf815a15a 221 int usec = 1000000;
xkozima 0:d81cf815a15a 222 for (int cc = 0; cc < 14; cc++) {
xkozima 0:d81cf815a15a 223 usec /= 2;
xkozima 0:d81cf815a15a 224 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 225 // random rects
xkozima 0:d81cf815a15a 226 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 227 int cx, cy, x, y, w, h;
xkozima 0:d81cf815a15a 228 // center
xkozima 0:d81cf815a15a 229 cx = rand() % 96;
xkozima 0:d81cf815a15a 230 cy = rand() % 64;
xkozima 0:d81cf815a15a 231 // size
xkozima 0:d81cf815a15a 232 w = rand() % 60 + 3;
xkozima 0:d81cf815a15a 233 h = rand() % 40 + 2;
xkozima 0:d81cf815a15a 234 // upper-left
xkozima 0:d81cf815a15a 235 x = cx - w / 2;
xkozima 0:d81cf815a15a 236 y = cy - h / 2;
xkozima 0:d81cf815a15a 237 if (x < 0) x = 0;
xkozima 0:d81cf815a15a 238 if (y < 0) y = 0;
xkozima 0:d81cf815a15a 239 // adjust size
xkozima 0:d81cf815a15a 240 if (x + w > 96) w = 96 - x;
xkozima 0:d81cf815a15a 241 if (y + h > 64) h = 64 - y;
xkozima 0:d81cf815a15a 242 // random color
xkozima 0:d81cf815a15a 243 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 244 // fill rectangle
xkozima 0:d81cf815a15a 245 display.rect(x, y, w, h, display.color(c1, c2, c3), 1);
xkozima 0:d81cf815a15a 246 // wait (slow to fast)
xkozima 0:d81cf815a15a 247 wait_us(usec);
xkozima 0:d81cf815a15a 248 }
xkozima 0:d81cf815a15a 249 }
xkozima 0:d81cf815a15a 250 wait_ms(2000);
xkozima 0:d81cf815a15a 251 display.clear(0);
xkozima 0:d81cf815a15a 252 // slow to fast (rectangles/outlined)
xkozima 0:d81cf815a15a 253 usec = 1000000;
xkozima 0:d81cf815a15a 254 for (int cc = 0; cc < 14; cc++) {
xkozima 0:d81cf815a15a 255 usec /= 2;
xkozima 0:d81cf815a15a 256 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 257 // random rects
xkozima 0:d81cf815a15a 258 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 259 int cx, cy, x, y, w, h;
xkozima 0:d81cf815a15a 260 // center
xkozima 0:d81cf815a15a 261 cx = rand() % 96;
xkozima 0:d81cf815a15a 262 cy = rand() % 64;
xkozima 0:d81cf815a15a 263 // size
xkozima 0:d81cf815a15a 264 w = rand() % 60 + 3;
xkozima 0:d81cf815a15a 265 h = rand() % 40 + 2;
xkozima 0:d81cf815a15a 266 // upper-left
xkozima 0:d81cf815a15a 267 x = cx - w / 2;
xkozima 0:d81cf815a15a 268 y = cy - h / 2;
xkozima 0:d81cf815a15a 269 if (x < 0) x = 0;
xkozima 0:d81cf815a15a 270 if (y < 0) y = 0;
xkozima 0:d81cf815a15a 271 // adjust size
xkozima 0:d81cf815a15a 272 if (x + w > 96) w = 96 - x;
xkozima 0:d81cf815a15a 273 if (y + h > 64) h = 64 - y;
xkozima 0:d81cf815a15a 274 // random color
xkozima 0:d81cf815a15a 275 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 276 // draw rectangle
xkozima 0:d81cf815a15a 277 display.rect(x, y, w, h, display.color(c1, c2, c3), 0);
xkozima 0:d81cf815a15a 278 // wait (slow to fast)
xkozima 0:d81cf815a15a 279 wait_us(usec);
xkozima 0:d81cf815a15a 280 }
xkozima 0:d81cf815a15a 281 }
xkozima 0:d81cf815a15a 282 wait_ms(2000);
xkozima 0:d81cf815a15a 283 display.clear(0);
xkozima 0:d81cf815a15a 284 // slow to fast (circles/filled)
xkozima 0:d81cf815a15a 285 usec = 1000000;
xkozima 0:d81cf815a15a 286 for (int cc = 0; cc < 12; cc++) {
xkozima 0:d81cf815a15a 287 usec /= 2;
xkozima 0:d81cf815a15a 288 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 289 // random circles
xkozima 0:d81cf815a15a 290 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 291 // coordinates
xkozima 0:d81cf815a15a 292 int x = rand() % 90 + 3, y = rand() % 60 + 2, r = rand() % 20 + 1;
xkozima 0:d81cf815a15a 293 if (x - r < 0) r = x;
xkozima 0:d81cf815a15a 294 if (x + r > 95) r = 95 - x;
xkozima 0:d81cf815a15a 295 if (y - r < 0) r = y;
xkozima 0:d81cf815a15a 296 if (y + r > 63) r = 63 - y;
xkozima 0:d81cf815a15a 297 // random color
xkozima 0:d81cf815a15a 298 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 299 // draw circle
xkozima 0:d81cf815a15a 300 display.circle(x, y, r, display.color(c1, c2, c3), 1);
xkozima 0:d81cf815a15a 301 // wait (slow to fast)
xkozima 0:d81cf815a15a 302 wait_us(usec);
xkozima 0:d81cf815a15a 303 }
xkozima 0:d81cf815a15a 304 }
xkozima 0:d81cf815a15a 305 wait_ms(2000);
xkozima 0:d81cf815a15a 306 display.clear(0);
xkozima 0:d81cf815a15a 307 // slow to fast (circles/outlined)
xkozima 0:d81cf815a15a 308 usec = 1000000;
xkozima 0:d81cf815a15a 309 for (int cc = 0; cc < 12; cc++) {
xkozima 0:d81cf815a15a 310 usec /= 2;
xkozima 0:d81cf815a15a 311 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 312 // random circles
xkozima 0:d81cf815a15a 313 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 314 // coordinates
xkozima 0:d81cf815a15a 315 int x = rand() % 90 + 3, y = rand() % 60 + 2, r = rand() % 20 + 1;
xkozima 0:d81cf815a15a 316 if (x - r < 0) r = x;
xkozima 0:d81cf815a15a 317 if (x + r > 95) r = 95 - x;
xkozima 0:d81cf815a15a 318 if (y - r < 0) r = y;
xkozima 0:d81cf815a15a 319 if (y + r > 63) r = 63 - y;
xkozima 0:d81cf815a15a 320 // random color
xkozima 0:d81cf815a15a 321 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 322 // draw cirlce
xkozima 0:d81cf815a15a 323 display.circle(x, y, r, display.color(c1, c2, c3), 0);
xkozima 0:d81cf815a15a 324 // wait (slow to fast)
xkozima 0:d81cf815a15a 325 wait_us(usec);
xkozima 0:d81cf815a15a 326 }
xkozima 0:d81cf815a15a 327 }
xkozima 0:d81cf815a15a 328 wait_ms(2000);
xkozima 0:d81cf815a15a 329 display.clear(0);
xkozima 0:d81cf815a15a 330 // slow to fast (ellipses/filled)
xkozima 0:d81cf815a15a 331 usec = 1000000;
xkozima 0:d81cf815a15a 332 for (int cc = 0; cc < 12; cc++) {
xkozima 0:d81cf815a15a 333 usec /= 2;
xkozima 0:d81cf815a15a 334 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 335 // random circles
xkozima 0:d81cf815a15a 336 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 337 // coordinates
xkozima 0:d81cf815a15a 338 int x = rand() % 90 + 3, y = rand() % 60 + 2,
xkozima 0:d81cf815a15a 339 rx = rand() % 20 + 1, ry = rand() % 20 + 1;
xkozima 0:d81cf815a15a 340 if (x - rx < 0) rx = x;
xkozima 0:d81cf815a15a 341 if (x + rx > 95) rx = 95 - x;
xkozima 0:d81cf815a15a 342 if (y - ry < 0) ry = y;
xkozima 0:d81cf815a15a 343 if (y + ry > 63) ry = 63 - y;
xkozima 0:d81cf815a15a 344 // random color
xkozima 0:d81cf815a15a 345 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 346 // draw line
xkozima 0:d81cf815a15a 347 display.ellipse(x, y, rx, ry, display.color(c1, c2, c3), 1);
xkozima 0:d81cf815a15a 348 // wait (slow to fast)
xkozima 0:d81cf815a15a 349 wait_us(usec);
xkozima 0:d81cf815a15a 350 }
xkozima 0:d81cf815a15a 351 }
xkozima 0:d81cf815a15a 352 wait_ms(2000);
xkozima 0:d81cf815a15a 353 display.clear(0);
xkozima 0:d81cf815a15a 354 // slow to fast (ellipses/outlined)
xkozima 0:d81cf815a15a 355 usec = 1000000;
xkozima 0:d81cf815a15a 356 for (int cc = 0; cc < 12; cc++) {
xkozima 0:d81cf815a15a 357 usec /= 2;
xkozima 0:d81cf815a15a 358 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 359 // random circles
xkozima 0:d81cf815a15a 360 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 361 // coordinates
xkozima 0:d81cf815a15a 362 int x = rand() % 90 + 3, y = rand() % 60 + 2,
xkozima 0:d81cf815a15a 363 rx = rand() % 20 + 1, ry = rand() % 20 + 1;
xkozima 0:d81cf815a15a 364 if (x - rx < 0) rx = x;
xkozima 0:d81cf815a15a 365 if (x + rx > 95) rx = 95 - x;
xkozima 0:d81cf815a15a 366 if (y - ry < 0) ry = y;
xkozima 0:d81cf815a15a 367 if (y + ry > 63) ry = 63 - y;
xkozima 0:d81cf815a15a 368 // random color
xkozima 0:d81cf815a15a 369 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 370 // draw line
xkozima 0:d81cf815a15a 371 display.ellipse(x, y, rx, ry, display.color(c1, c2, c3), 0);
xkozima 0:d81cf815a15a 372 // wait (slow to fast)
xkozima 0:d81cf815a15a 373 wait_us(usec);
xkozima 0:d81cf815a15a 374 }
xkozima 0:d81cf815a15a 375 }
xkozima 0:d81cf815a15a 376 wait_ms(2000);
xkozima 0:d81cf815a15a 377 display.clear(0);
xkozima 0:d81cf815a15a 378 // slow to fast (lines)
xkozima 0:d81cf815a15a 379 usec = 1000000;
xkozima 0:d81cf815a15a 380 for (int cc = 0; cc < 14; cc++) {
xkozima 0:d81cf815a15a 381 usec /= 2;
xkozima 0:d81cf815a15a 382 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 383 // random lines
xkozima 0:d81cf815a15a 384 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 385 // coordinates
xkozima 0:d81cf815a15a 386 int x1 = rand() % 96, y1 = rand() % 64, x2 = rand() % 96, y2 = rand() % 64;
xkozima 0:d81cf815a15a 387 // random color
xkozima 0:d81cf815a15a 388 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 389 // draw line
xkozima 0:d81cf815a15a 390 display.line(x1, y1, x2, y2, display.color(c1, c2, c3));
xkozima 0:d81cf815a15a 391 // wait (slow to fast)
xkozima 0:d81cf815a15a 392 wait_us(usec);
xkozima 0:d81cf815a15a 393 }
xkozima 0:d81cf815a15a 394 }
xkozima 0:d81cf815a15a 395 wait_ms(2000);
xkozima 0:d81cf815a15a 396 display.clear(0);
xkozima 0:d81cf815a15a 397 wait_ms(1000);
xkozima 0:d81cf815a15a 398 // slow to fast (points)
xkozima 0:d81cf815a15a 399 usec = 200000;
xkozima 0:d81cf815a15a 400 for (int cc = 0; cc < 18; cc++) {
xkozima 0:d81cf815a15a 401 usec /= 2;
xkozima 0:d81cf815a15a 402 int count = 200000 / usec;
xkozima 0:d81cf815a15a 403 // random lines
xkozima 0:d81cf815a15a 404 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 405 // coordinates
xkozima 0:d81cf815a15a 406 int x = rand() % 96, y = rand() % 64;
xkozima 0:d81cf815a15a 407 // random color
xkozima 0:d81cf815a15a 408 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 409 // draw line
xkozima 0:d81cf815a15a 410 display.point(x, y, display.color(c1, c2, c3));
xkozima 0:d81cf815a15a 411 // wait (slow to fast)
xkozima 0:d81cf815a15a 412 wait_us(usec);
xkozima 0:d81cf815a15a 413 }
xkozima 0:d81cf815a15a 414 }
xkozima 0:d81cf815a15a 415 wait_ms(2000);
xkozima 0:d81cf815a15a 416 display.clear(0);
xkozima 0:d81cf815a15a 417 wait_ms(1000);
xkozima 0:d81cf815a15a 418 //
xkozima 0:d81cf815a15a 419 // slow to fast (text)
xkozima 0:d81cf815a15a 420 usec = 1000000;
xkozima 0:d81cf815a15a 421 for (int cc = 0; cc < 12; cc++) {
xkozima 0:d81cf815a15a 422 usec /= 2;
xkozima 0:d81cf815a15a 423 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 424 // random text
xkozima 0:d81cf815a15a 425 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 426 // coordinates
xkozima 0:d81cf815a15a 427 int x = rand() % (96 - 18), y = rand() % (64 - 8);
xkozima 0:d81cf815a15a 428 // text
xkozima 0:d81cf815a15a 429 char string[4];
xkozima 0:d81cf815a15a 430 string[0] = 'A' + rand() % 26;
xkozima 0:d81cf815a15a 431 string[1] = 'a' + rand() % 26;
xkozima 0:d81cf815a15a 432 string[2] = '0' + rand() % 10;
xkozima 0:d81cf815a15a 433 string[3] = '\0';
xkozima 0:d81cf815a15a 434 // random color
xkozima 0:d81cf815a15a 435 int c1 = rand() % 256, c2 = rand() % 256, c3 = rand() % 256;
xkozima 0:d81cf815a15a 436 // draw text
xkozima 0:d81cf815a15a 437 display.text(x, y, string, display.color(c1, c2, c3));
xkozima 0:d81cf815a15a 438 // wait (slow to fast)
xkozima 0:d81cf815a15a 439 wait_us(usec);
xkozima 0:d81cf815a15a 440 }
xkozima 0:d81cf815a15a 441 }
xkozima 0:d81cf815a15a 442 wait_ms(2000);
xkozima 0:d81cf815a15a 443 display.clear(0);
xkozima 0:d81cf815a15a 444 //
xkozima 0:d81cf815a15a 445 // slow to fast (text with background)
xkozima 0:d81cf815a15a 446 usec = 1000000;
xkozima 0:d81cf815a15a 447 for (int cc = 0; cc < 12; cc++) {
xkozima 0:d81cf815a15a 448 usec /= 2;
xkozima 0:d81cf815a15a 449 int count = 1000000 / usec;
xkozima 0:d81cf815a15a 450 // random text
xkozima 0:d81cf815a15a 451 for (int c = 0; c < count; c++) {
xkozima 0:d81cf815a15a 452 // coordinates
xkozima 0:d81cf815a15a 453 int x = rand() % (96 - 18), y = rand() % (64 - 8);
xkozima 0:d81cf815a15a 454 // text
xkozima 0:d81cf815a15a 455 char string[4];
xkozima 0:d81cf815a15a 456 string[0] = 'A' + rand() % 26;
xkozima 0:d81cf815a15a 457 string[1] = 'a' + rand() % 26;
xkozima 0:d81cf815a15a 458 string[2] = '0' + rand() % 10;
xkozima 0:d81cf815a15a 459 string[3] = '\0';
xkozima 0:d81cf815a15a 460 // random color
xkozima 0:d81cf815a15a 461 int f1 = rand() % 256, f2 = rand() % 256, f3 = rand() % 256;
xkozima 0:d81cf815a15a 462 int b1 = rand() % 256, b2 = rand() % 256, b3 = rand() % 256;
xkozima 0:d81cf815a15a 463 // draw text
xkozima 0:d81cf815a15a 464 display.text(x, y, string, display.color(f1, f2, f3), display.color(b1, b2, b3));
xkozima 0:d81cf815a15a 465 // wait (slow to fast)
xkozima 0:d81cf815a15a 466 wait_us(usec);
xkozima 0:d81cf815a15a 467 }
xkozima 0:d81cf815a15a 468 }
xkozima 0:d81cf815a15a 469 wait_ms(2000);
xkozima 0:d81cf815a15a 470 display.clear(0);
xkozima 0:d81cf815a15a 471 //
xkozima 0:d81cf815a15a 472 // checker 32x32
xkozima 0:d81cf815a15a 473 for (int yy = 0; yy < 2; yy++) {
xkozima 0:d81cf815a15a 474 int col = yy;
xkozima 0:d81cf815a15a 475 for (int xx = 0; xx < 3; xx++) {
xkozima 0:d81cf815a15a 476 display.rect(xx * 32, yy * 32, 32, 32,
xkozima 0:d81cf815a15a 477 (col++ % 2)? display.color(255, 0, 0):
xkozima 0:d81cf815a15a 478 display.color(255, 255, 255),
xkozima 0:d81cf815a15a 479 1 );
xkozima 0:d81cf815a15a 480 //wait_us(32*32/10);
xkozima 0:d81cf815a15a 481 }
xkozima 0:d81cf815a15a 482 }
xkozima 0:d81cf815a15a 483 wait_ms(1000);
xkozima 0:d81cf815a15a 484 // checker 16x16
xkozima 0:d81cf815a15a 485 for (int yy = 0; yy < 4; yy++) {
xkozima 0:d81cf815a15a 486 int col = yy;
xkozima 0:d81cf815a15a 487 for (int xx = 0; xx < 6; xx++) {
xkozima 0:d81cf815a15a 488 display.rect(xx * 16, yy * 16, 16, 16,
xkozima 0:d81cf815a15a 489 (col++ % 2)? display.color(255, 0, 0):
xkozima 0:d81cf815a15a 490 display.color(255, 255, 255),
xkozima 0:d81cf815a15a 491 1 );
xkozima 0:d81cf815a15a 492 //wait_us(16*16/10);
xkozima 0:d81cf815a15a 493 }
xkozima 0:d81cf815a15a 494 }
xkozima 0:d81cf815a15a 495 wait_ms(1000);
xkozima 0:d81cf815a15a 496 // checker 8x8
xkozima 0:d81cf815a15a 497 for (int yy = 0; yy < 8; yy++) {
xkozima 0:d81cf815a15a 498 int col = yy;
xkozima 0:d81cf815a15a 499 for (int xx = 0; xx < 12; xx++) {
xkozima 0:d81cf815a15a 500 display.rect(xx * 8, yy * 8, 8, 8,
xkozima 0:d81cf815a15a 501 (col++ % 2)? display.color(255, 0, 0):
xkozima 0:d81cf815a15a 502 display.color(255, 255, 255),
xkozima 0:d81cf815a15a 503 1 );
xkozima 0:d81cf815a15a 504 //wait_us(8*8/10);
xkozima 0:d81cf815a15a 505 }
xkozima 0:d81cf815a15a 506 }
xkozima 0:d81cf815a15a 507 wait_ms(1000);
xkozima 0:d81cf815a15a 508 // checker 4x4
xkozima 0:d81cf815a15a 509 for (int yy = 0; yy < 16; yy++) {
xkozima 0:d81cf815a15a 510 int col = yy;
xkozima 0:d81cf815a15a 511 for (int xx = 0; xx < 24; xx++) {
xkozima 0:d81cf815a15a 512 display.rect(xx * 4, yy * 4, 4, 4,
xkozima 0:d81cf815a15a 513 (col++ % 2)? display.color(255, 0, 0):
xkozima 0:d81cf815a15a 514 display.color(255, 255, 255),
xkozima 0:d81cf815a15a 515 1 );
xkozima 0:d81cf815a15a 516 //wait_us(4*4/10);
xkozima 0:d81cf815a15a 517 }
xkozima 0:d81cf815a15a 518 }
xkozima 0:d81cf815a15a 519 wait_ms(1000);
xkozima 0:d81cf815a15a 520 // checker 2x2
xkozima 0:d81cf815a15a 521 for (int yy = 0; yy < 32; yy++) {
xkozima 0:d81cf815a15a 522 int col = yy;
xkozima 0:d81cf815a15a 523 for (int xx = 0; xx < 48; xx++) {
xkozima 0:d81cf815a15a 524 display.rect(xx * 2, yy * 2, 2, 2,
xkozima 0:d81cf815a15a 525 (col++ % 2)? display.color(255, 0, 0):
xkozima 0:d81cf815a15a 526 display.color(255, 255, 255),
xkozima 0:d81cf815a15a 527 1 );
xkozima 0:d81cf815a15a 528 //wait_us(1);
xkozima 0:d81cf815a15a 529 }
xkozima 0:d81cf815a15a 530 }
xkozima 0:d81cf815a15a 531 wait_ms(1000);
xkozima 0:d81cf815a15a 532 // checker 1x1
xkozima 0:d81cf815a15a 533 for (int yy = 0; yy < 64; yy++) {
xkozima 0:d81cf815a15a 534 int col = yy;
xkozima 0:d81cf815a15a 535 for (int xx = 0; xx < 96; xx++) {
xkozima 0:d81cf815a15a 536 display.rect(xx * 1, yy * 1, 1, 1,
xkozima 0:d81cf815a15a 537 (col++ % 2)? display.color(255, 0, 0):
xkozima 0:d81cf815a15a 538 display.color(255, 255, 255),
xkozima 0:d81cf815a15a 539 1 );
xkozima 0:d81cf815a15a 540 //wait_us(1);
xkozima 0:d81cf815a15a 541 }
xkozima 0:d81cf815a15a 542 }
xkozima 0:d81cf815a15a 543 wait_ms(1000);
xkozima 0:d81cf815a15a 544 display.clear(0);
xkozima 0:d81cf815a15a 545 wait_ms(1000);
xkozima 0:d81cf815a15a 546 //
xkozima 0:d81cf815a15a 547 // draw image
xkozima 0:d81cf815a15a 548 display.image(0, 0, 96, 64, image8x3);
xkozima 0:d81cf815a15a 549 wait_ms(2000);
xkozima 0:d81cf815a15a 550 // scroll image
xkozima 0:d81cf815a15a 551 for (int yyy = 0; yyy < 64; yyy++) {
xkozima 0:d81cf815a15a 552 display.image(0, 0, 96, yyy + 1, image8x3 + ((63 - yyy) * 96) * 3 );
xkozima 0:d81cf815a15a 553 display.image(0, yyy + 1, 96, 63 - yyy, image8x3 );
xkozima 0:d81cf815a15a 554 }
xkozima 0:d81cf815a15a 555 wait_ms(2000);
xkozima 0:d81cf815a15a 556 display.clear(0);
xkozima 0:d81cf815a15a 557 wait_ms(1000);
xkozima 0:d81cf815a15a 558 }
xkozima 0:d81cf815a15a 559 }