Hideki Kozima
/
OLEDexample
An example program of OLEDaccel library.
Fork of OLEDexample by
main.cpp@2:a49c7380f7f3, 2012-08-17 (annotated)
- Committer:
- xkozima
- Date:
- Fri Aug 17 15:31:27 2012 +0000
- Revision:
- 2:a49c7380f7f3
- Parent:
- 0:d81cf815a15a
An example program for OLEDaccel library.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xkozima | 0:d81cf815a15a | 1 | #include "mbed.h" |
xkozima | 2:a49c7380f7f3 | 2 | #include "OLEDaccel.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 | } |