Demonstration of SSD1308 OLED driver library

Dependencies:   mbed SSD1308_128x64_I2C

Committer:
wim
Date:
Mon Dec 18 18:46:21 2017 +0000
Revision:
8:8d49c965b3ec
Parent:
7:ae282775cbcc
Fixed non-copyable issue (Thx kenjiArai)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 1:00053cb70ac5 1 /* mbed Seeed 128x64 OLED Test
wim 1:00053cb70ac5 2 * http://www.seeedstudio.com/depot/grove-oled-display-12864-p-781.html?cPath=163_167
wim 1:00053cb70ac5 3 *
wim 1:00053cb70ac5 4 * Copyright (c) 2012 Wim Huiskamp
wim 1:00053cb70ac5 5 * Released under the MIT License: http://mbed.org/license/mit
wim 1:00053cb70ac5 6 *
wim 1:00053cb70ac5 7 * version 0.2 Initial Release
wim 8:8d49c965b3ec 8 * version 0.3 2017 Fixed non-copyable issue (Thx kenjiArai)
wim 1:00053cb70ac5 9 */
wim 1:00053cb70ac5 10 #include "mbed.h"
wim 1:00053cb70ac5 11 #include "mbed_logo.h"
wim 1:00053cb70ac5 12 #include "SSD1308.h"
wim 1:00053cb70ac5 13
wim 7:ae282775cbcc 14 #if defined(TARGET_LPC1768)
wim 1:00053cb70ac5 15 //Pin Defines for I2C Bus
wim 1:00053cb70ac5 16 //#define D_SDA p9
wim 1:00053cb70ac5 17 //#define D_SCL p10
wim 1:00053cb70ac5 18 #define D_SDA p28
wim 1:00053cb70ac5 19 #define D_SCL p27
wim 7:ae282775cbcc 20 #endif
wim 7:ae282775cbcc 21
wim 7:ae282775cbcc 22 #if defined(TARGET_NUCLEO_F401RE)
wim 7:ae282775cbcc 23 #define D_SDA PB_9
wim 7:ae282775cbcc 24 #define D_SCL PB_8
wim 7:ae282775cbcc 25 #endif
wim 7:ae282775cbcc 26
wim 7:ae282775cbcc 27 #if defined(TARGET_KL25Z)
wim 7:ae282775cbcc 28 // I2C for KL25Z
wim 7:ae282775cbcc 29 #define D_SCL PTE1
wim 7:ae282775cbcc 30 #define D_SDA PTE0
wim 7:ae282775cbcc 31 #endif
wim 7:ae282775cbcc 32
wim 1:00053cb70ac5 33 I2C i2c(D_SDA, D_SCL);
wim 1:00053cb70ac5 34
wim 1:00053cb70ac5 35 //Host PC Baudrate (Virtual Com Port on USB)
wim 1:00053cb70ac5 36 #define D_BAUDRATE 9600
wim 1:00053cb70ac5 37 //#define D_BAUDRATE 57600
wim 1:00053cb70ac5 38
wim 1:00053cb70ac5 39 // mbed Interface Hardware definitions
wim 1:00053cb70ac5 40 DigitalOut myled1(LED1);
wim 1:00053cb70ac5 41 DigitalOut myled2(LED2);
wim 1:00053cb70ac5 42 DigitalOut myled3(LED3);
wim 1:00053cb70ac5 43 DigitalOut heartbeatLED(LED4);
wim 1:00053cb70ac5 44
wim 1:00053cb70ac5 45 // Host PC Communication channels
wim 1:00053cb70ac5 46 Serial pc(USBTX, USBRX); // tx, rx
wim 1:00053cb70ac5 47
wim 1:00053cb70ac5 48 // Instantiate OLED
wim 8:8d49c965b3ec 49 SSD1308 oled = SSD1308(&i2c, SSD1308_SA0);
wim 1:00053cb70ac5 50
wim 1:00053cb70ac5 51 void show_menu() {
wim 3:1337e3d65ed0 52 pc.printf("0: Exit\r");
wim 3:1337e3d65ed0 53 pc.printf("1: Show Menu\r");
wim 3:1337e3d65ed0 54 pc.printf("2: Send Message\r");
wim 3:1337e3d65ed0 55 pc.printf("3: Fill Display\r");
wim 3:1337e3d65ed0 56 pc.printf("4: Display cleared\r");
wim 3:1337e3d65ed0 57 pc.printf("5: Display off\r");
wim 3:1337e3d65ed0 58 pc.printf("6: Display on\r");
wim 3:1337e3d65ed0 59 pc.printf("7: Display Invert\r");
wim 3:1337e3d65ed0 60 pc.printf("8: Display Normal\r");
wim 3:1337e3d65ed0 61 pc.printf("9: Display Bitmap\r");
wim 3:1337e3d65ed0 62 pc.printf("A: Brightness Ramp\r");
wim 3:1337e3d65ed0 63 pc.printf("B: Send Inverted Message\r");
wim 3:1337e3d65ed0 64 pc.printf("C: Flip and Mirror\r");
wim 3:1337e3d65ed0 65 pc.printf("D: Blink\r");
wim 3:1337e3d65ed0 66 pc.printf("E: Big Chars\r");
wim 5:dff410a009c5 67 pc.printf("F: Progress Scale\r");
wim 6:44256b0b5d18 68 pc.printf("G: Scroll\r");
wim 6:44256b0b5d18 69 pc.printf("H: Hor Scroll\r");
wim 6:44256b0b5d18 70 pc.printf("V: Ver and Hor Scroll\r");
wim 1:00053cb70ac5 71 // pc.printf("\n\r");
wim 1:00053cb70ac5 72
wim 1:00053cb70ac5 73 }
wim 1:00053cb70ac5 74
wim 1:00053cb70ac5 75
wim 1:00053cb70ac5 76 void oled_Test() {
wim 7:ae282775cbcc 77 pc.printf("OLED test start\r");
wim 7:ae282775cbcc 78
wim 7:ae282775cbcc 79 #if defined(TARGET_LPC1768)
wim 7:ae282775cbcc 80 pc.printf("\r\nHello World from LPC1768\r\n");
wim 7:ae282775cbcc 81 #endif
wim 7:ae282775cbcc 82 #if defined(TARGET_KL25Z)
wim 7:ae282775cbcc 83 pc.printf("\r\nHello World from KL25Z\r\n");
wim 7:ae282775cbcc 84 #endif
wim 7:ae282775cbcc 85 #if defined(TARGET_LPC812)
wim 7:ae282775cbcc 86 pc.printf("\r\nHello World from LPC812\r\n");
wim 7:ae282775cbcc 87 #endif
wim 7:ae282775cbcc 88 #if defined(TARGET_LPC1549)
wim 7:ae282775cbcc 89 pc.printf("Hello World from LPC1549\n\r");
wim 7:ae282775cbcc 90 #endif
wim 7:ae282775cbcc 91 #if defined(TARGET_NUCLEO_F401RE)
wim 7:ae282775cbcc 92 pc.printf("Hello World from ST32F401RE\n\r");
wim 7:ae282775cbcc 93 #endif
wim 7:ae282775cbcc 94 #if defined(TARGET_NUCLEO_F103RB)
wim 7:ae282775cbcc 95 pc.printf("Hello World from ST32F103RB\n\r");
wim 7:ae282775cbcc 96 #endif
wim 7:ae282775cbcc 97
wim 1:00053cb70ac5 98
wim 6:44256b0b5d18 99 // oled.writeString(0, 0, 13, "Hello World !");
wim 6:44256b0b5d18 100 oled.writeString(0, 0, "Hello World !");
wim 6:44256b0b5d18 101 pc.printf("Printed something\r");
wim 1:00053cb70ac5 102 wait(3);
wim 1:00053cb70ac5 103
wim 6:44256b0b5d18 104 // oled.writeString(1, 0, 8, "baz quux");
wim 6:44256b0b5d18 105 oled.writeString(1, 0, "baz quux");
wim 6:44256b0b5d18 106 pc.printf("Printed something\r");
wim 1:00053cb70ac5 107 wait(3);
wim 1:00053cb70ac5 108
wim 1:00053cb70ac5 109 // oled.writeString(4, 0, 272, "a long, rather lengthy, extended string passage thing, eh, that just goes on, and on, and on, and on, and on, and on, and on, yes, further, continuing, extending, expanding beyond all reason or sanity!!!!! and yet, there's more! so much more! for ever and ever, oh yeah");
wim 6:44256b0b5d18 110 // pc.printf("Printed something\r");
wim 1:00053cb70ac5 111 // wait(3);
wim 1:00053cb70ac5 112
wim 1:00053cb70ac5 113 oled.fillDisplay(0xAA);
wim 6:44256b0b5d18 114 pc.printf("Display filled\r");
wim 1:00053cb70ac5 115 wait(3);
wim 1:00053cb70ac5 116
wim 1:00053cb70ac5 117 oled.setDisplayOff();
wim 6:44256b0b5d18 118 pc.printf("Display off\r");
wim 1:00053cb70ac5 119 wait(0.5);
wim 1:00053cb70ac5 120
wim 1:00053cb70ac5 121 oled.setDisplayOn();
wim 6:44256b0b5d18 122 pc.printf("Display on\r");
wim 1:00053cb70ac5 123 wait(0.5);
wim 1:00053cb70ac5 124
wim 1:00053cb70ac5 125 oled.clearDisplay();
wim 6:44256b0b5d18 126 pc.printf("Display cleared\r");
wim 1:00053cb70ac5 127 wait(0.5);
wim 1:00053cb70ac5 128
wim 6:44256b0b5d18 129 // oled.writeString(0, 0, 11, "Bye World !");
wim 6:44256b0b5d18 130 oled.writeString(0, 0, "Bye World !");
wim 6:44256b0b5d18 131 pc.printf("Printed something\r");
wim 1:00053cb70ac5 132 wait(3);
wim 1:00053cb70ac5 133
wim 6:44256b0b5d18 134 pc.printf("OLED test done\r");
wim 1:00053cb70ac5 135 }
wim 1:00053cb70ac5 136
wim 1:00053cb70ac5 137 // Variables for Heartbeat and Status monitoring
wim 1:00053cb70ac5 138 Ticker heartbeat;
wim 1:00053cb70ac5 139 bool heartbeatflag=false;
wim 1:00053cb70ac5 140
wim 1:00053cb70ac5 141 // Local functions
wim 1:00053cb70ac5 142 void clear_screen() {
wim 1:00053cb70ac5 143 //ANSI Terminal Commands
wim 1:00053cb70ac5 144 pc.printf("\x1B[2J");
wim 1:00053cb70ac5 145 pc.printf("\x1B[H");
wim 1:00053cb70ac5 146 }
wim 1:00053cb70ac5 147
wim 1:00053cb70ac5 148
wim 1:00053cb70ac5 149 void init_interfaces() {
wim 1:00053cb70ac5 150 // Init Host PC communication, default is 9600
wim 1:00053cb70ac5 151 pc.baud(D_BAUDRATE);
wim 1:00053cb70ac5 152
wim 1:00053cb70ac5 153 // Init I/F hardware
wim 1:00053cb70ac5 154 // i2c.frequency(100000);
wim 1:00053cb70ac5 155 i2c.frequency(400000); // according to the spec the max bitrate for the SSD1308 is 400 kbit/s
wim 1:00053cb70ac5 156 }
wim 1:00053cb70ac5 157
wim 1:00053cb70ac5 158
wim 1:00053cb70ac5 159 // Heartbeat monitor
wim 1:00053cb70ac5 160 void pulse() {
wim 1:00053cb70ac5 161 heartbeatLED = !heartbeatLED;
wim 1:00053cb70ac5 162 }
wim 1:00053cb70ac5 163
wim 1:00053cb70ac5 164 void heartbeat_start() {
wim 1:00053cb70ac5 165 heartbeat.attach(&pulse, 0.5);
wim 1:00053cb70ac5 166 }
wim 1:00053cb70ac5 167
wim 1:00053cb70ac5 168 void heartbeat_stop() {
wim 1:00053cb70ac5 169 heartbeat.detach();
wim 1:00053cb70ac5 170 }
wim 1:00053cb70ac5 171
wim 1:00053cb70ac5 172
wim 1:00053cb70ac5 173 int main() {
wim 1:00053cb70ac5 174 bool running=true;
wim 2:d86478c0f5da 175 bool left = true;
wim 2:d86478c0f5da 176 bool down = true;
wim 2:d86478c0f5da 177
wim 1:00053cb70ac5 178 char command;
wim 1:00053cb70ac5 179
wim 1:00053cb70ac5 180 init_interfaces();
wim 1:00053cb70ac5 181
wim 1:00053cb70ac5 182 heartbeat_start();
wim 1:00053cb70ac5 183
wim 1:00053cb70ac5 184 clear_screen();
wim 1:00053cb70ac5 185
wim 6:44256b0b5d18 186 pc.printf("Hello World!\r");
wim 1:00053cb70ac5 187
wim 1:00053cb70ac5 188 #if(0)
wim 1:00053cb70ac5 189 // Quick test
wim 1:00053cb70ac5 190 oled_Test();
wim 1:00053cb70ac5 191
wim 1:00053cb70ac5 192 while(1) {
wim 1:00053cb70ac5 193 myled1 = 1;
wim 1:00053cb70ac5 194 wait(0.2);
wim 1:00053cb70ac5 195
wim 1:00053cb70ac5 196 myled1 = 0;
wim 1:00053cb70ac5 197 wait(0.2);
wim 1:00053cb70ac5 198 pc.printf("*");
wim 1:00053cb70ac5 199 }
wim 1:00053cb70ac5 200 #else
wim 1:00053cb70ac5 201 // Interactive Test
wim 1:00053cb70ac5 202 show_menu();
wim 1:00053cb70ac5 203
wim 1:00053cb70ac5 204 while(running) {
wim 1:00053cb70ac5 205
wim 1:00053cb70ac5 206 if(pc.readable()) {
wim 1:00053cb70ac5 207 command = pc.getc();
wim 3:1337e3d65ed0 208 //pc.printf("command= %c \n\r", command);
wim 3:1337e3d65ed0 209 pc.printf("\r");
wim 3:1337e3d65ed0 210
wim 1:00053cb70ac5 211 switch (command) {
wim 1:00053cb70ac5 212 case '0' :
wim 6:44256b0b5d18 213 pc.printf("Done\r");
wim 1:00053cb70ac5 214 running = false;
wim 1:00053cb70ac5 215 break;
wim 1:00053cb70ac5 216
wim 1:00053cb70ac5 217 case '1' :
wim 1:00053cb70ac5 218 show_menu();
wim 1:00053cb70ac5 219 break;
wim 1:00053cb70ac5 220
wim 1:00053cb70ac5 221 case '2' :
wim 6:44256b0b5d18 222 pc.printf("Hello World!\r");
wim 7:ae282775cbcc 223 oled.writeString(0, 0, "Hello World !");
wim 1:00053cb70ac5 224 break;
wim 1:00053cb70ac5 225
wim 1:00053cb70ac5 226 case '3' :
wim 6:44256b0b5d18 227 pc.printf("Fill part of Display 0xA5\r");
wim 3:1337e3d65ed0 228 // oled.fillDisplay(0xA5);
wim 3:1337e3d65ed0 229
wim 3:1337e3d65ed0 230 oled.fillDisplay(0xA5, 2, 5, 0, 63);
wim 1:00053cb70ac5 231 break;
wim 1:00053cb70ac5 232
wim 1:00053cb70ac5 233 case '4' :
wim 6:44256b0b5d18 234 pc.printf("Display cleared\r");
wim 1:00053cb70ac5 235 oled.clearDisplay();
wim 1:00053cb70ac5 236 break;
wim 1:00053cb70ac5 237
wim 1:00053cb70ac5 238 case '5' :
wim 6:44256b0b5d18 239 pc.printf("Display off\r");
wim 1:00053cb70ac5 240 oled.setDisplayOff();
wim 1:00053cb70ac5 241 break;
wim 1:00053cb70ac5 242 case '6' :
wim 6:44256b0b5d18 243 pc.printf("Display on\r");
wim 1:00053cb70ac5 244 oled.setDisplayOn();
wim 1:00053cb70ac5 245 break;
wim 1:00053cb70ac5 246
wim 1:00053cb70ac5 247 case '7' :
wim 6:44256b0b5d18 248 pc.printf("Display Invert\r");
wim 1:00053cb70ac5 249 oled.setDisplayInverse();
wim 1:00053cb70ac5 250 break;
wim 1:00053cb70ac5 251
wim 1:00053cb70ac5 252 case '8' :
wim 6:44256b0b5d18 253 pc.printf("Display Normal\r");
wim 1:00053cb70ac5 254 oled.setDisplayNormal();
wim 1:00053cb70ac5 255 break;
wim 1:00053cb70ac5 256
wim 1:00053cb70ac5 257 case '9' :
wim 6:44256b0b5d18 258 pc.printf("Display bitmap\r");
wim 3:1337e3d65ed0 259 oled.writeBitmap((uint8_t*) mbed_logo);
wim 3:1337e3d65ed0 260
wim 1:00053cb70ac5 261 break;
wim 1:00053cb70ac5 262
wim 1:00053cb70ac5 263 case 'A' :
wim 6:44256b0b5d18 264 pc.printf("Brightness Ramp Down\r");
wim 3:1337e3d65ed0 265 for (int contrast=0x7F; contrast >= 0x10; contrast--) {
wim 2:d86478c0f5da 266 oled.setContrastControl(contrast);
wim 2:d86478c0f5da 267 wait(0.05);
wim 2:d86478c0f5da 268 }
wim 2:d86478c0f5da 269
wim 2:d86478c0f5da 270 wait(1);
wim 3:1337e3d65ed0 271
wim 6:44256b0b5d18 272 pc.printf("Brightness Ramp Up\r");
wim 3:1337e3d65ed0 273 for (int contrast=0x10; contrast <= 0x7F; contrast++) {
wim 2:d86478c0f5da 274 oled.setContrastControl(contrast);
wim 2:d86478c0f5da 275 wait(0.05);
wim 2:d86478c0f5da 276 }
wim 2:d86478c0f5da 277
wim 6:44256b0b5d18 278 pc.printf("Brightness Ramp Done\r");
wim 3:1337e3d65ed0 279
wim 1:00053cb70ac5 280 break;
wim 1:00053cb70ac5 281
wim 1:00053cb70ac5 282 case 'B' :
wim 6:44256b0b5d18 283 pc.printf("Send Inverted Message\r");
wim 3:1337e3d65ed0 284 oled.setInverted(true);
wim 6:44256b0b5d18 285 // oled.writeString(0, 0, 13, "Hello World !");
wim 6:44256b0b5d18 286 oled.writeString(0, 0, "Hello World !");
wim 3:1337e3d65ed0 287 oled.setInverted(false);
wim 3:1337e3d65ed0 288
wim 3:1337e3d65ed0 289 oled.printf(" Result is %d", 12345);
wim 3:1337e3d65ed0 290
wim 2:d86478c0f5da 291 break;
wim 2:d86478c0f5da 292
wim 2:d86478c0f5da 293 case 'C' :
wim 6:44256b0b5d18 294 pc.printf("Flip and Mirror (Rewrite display to show horizontal effect)\r");
wim 2:d86478c0f5da 295 left = !left;
wim 2:d86478c0f5da 296 down = !down;
wim 2:d86478c0f5da 297 oled.setDisplayFlip(left, down);
wim 3:1337e3d65ed0 298 break;
wim 3:1337e3d65ed0 299
wim 3:1337e3d65ed0 300 case 'D' :
wim 6:44256b0b5d18 301 pc.printf("D: Blink and Fade (not supported)\r");
wim 3:1337e3d65ed0 302
wim 3:1337e3d65ed0 303 // oled.setDisplayBlink(true);
wim 3:1337e3d65ed0 304 // wait(4);
wim 3:1337e3d65ed0 305 // oled.setDisplayBlink(false);
wim 3:1337e3d65ed0 306
wim 3:1337e3d65ed0 307 oled.setDisplayFade(true);
wim 3:1337e3d65ed0 308 wait(4);
wim 3:1337e3d65ed0 309 oled.setDisplayFade(false);
wim 3:1337e3d65ed0 310
wim 6:44256b0b5d18 311 pc.printf("D: Blink done\r");
wim 6:44256b0b5d18 312 break;
wim 3:1337e3d65ed0 313
wim 3:1337e3d65ed0 314 case 'E' :
wim 6:44256b0b5d18 315 pc.printf("E: Big Chars\r");
wim 3:1337e3d65ed0 316
wim 3:1337e3d65ed0 317 oled.writeBigChar(0, 0, '+');
wim 3:1337e3d65ed0 318 oled.writeBigChar(0, 16, '7');
wim 3:1337e3d65ed0 319 oled.writeBigChar(0, 32, '8');
wim 3:1337e3d65ed0 320 oled.writeBigChar(0, 48, '9');
wim 3:1337e3d65ed0 321
wim 6:44256b0b5d18 322 pc.printf("E: Big Chars done\r");
wim 3:1337e3d65ed0 323 break;
wim 5:dff410a009c5 324
wim 5:dff410a009c5 325 case 'F' :
wim 6:44256b0b5d18 326 pc.printf("F: Progress Scale\r");
wim 5:dff410a009c5 327
wim 5:dff410a009c5 328 for (int percentage=0; percentage <= 100; percentage++) {
wim 5:dff410a009c5 329 oled.writeProgressBar(2, 0, percentage);
wim 6:44256b0b5d18 330 oled.printf(" %3d%%", percentage);
wim 5:dff410a009c5 331
wim 5:dff410a009c5 332 oled.writeProgressBar(4, 0, 100 - percentage);
wim 6:44256b0b5d18 333 oled.printf(" %3d%%", 100 - percentage);
wim 6:44256b0b5d18 334
wim 6:44256b0b5d18 335 oled.writeLevelBar(6, 0, percentage);
wim 6:44256b0b5d18 336 oled.printf(" %3dmV", percentage);
wim 6:44256b0b5d18 337
wim 5:dff410a009c5 338 wait(0.05);
wim 5:dff410a009c5 339 }
wim 6:44256b0b5d18 340
wim 6:44256b0b5d18 341 pc.printf("F: Progress Scale done\r");
wim 6:44256b0b5d18 342 break;
wim 6:44256b0b5d18 343
wim 6:44256b0b5d18 344 case 'G' :
wim 6:44256b0b5d18 345 pc.printf("G: Scroll\r");
wim 5:dff410a009c5 346
wim 6:44256b0b5d18 347 for (int line=0; line < ROWS; line++) {
wim 6:44256b0b5d18 348 oled.setDisplayStartLine(line);
wim 6:44256b0b5d18 349 wait(0.05);
wim 6:44256b0b5d18 350 }
wim 6:44256b0b5d18 351
wim 6:44256b0b5d18 352 oled.setDisplayStartLine(0);
wim 6:44256b0b5d18 353
wim 6:44256b0b5d18 354 pc.printf("G: Scroll done\r");
wim 5:dff410a009c5 355 break;
wim 5:dff410a009c5 356
wim 5:dff410a009c5 357
wim 6:44256b0b5d18 358 case 'H' :
wim 6:44256b0b5d18 359 // pc.printf("H: Hor Scroll\r");
wim 6:44256b0b5d18 360 pc.printf("H: Hor Scroll (Page 0-3)\r");
wim 6:44256b0b5d18 361 // oled.setContinuousHorizontalScroll(true, PAGE0, PAGE7, SCROLL_INTERVAL_25_FRAMES);
wim 6:44256b0b5d18 362 oled.setContinuousHorizontalScroll(true, PAGE0, PAGE3, SCROLL_INTERVAL_25_FRAMES);
wim 6:44256b0b5d18 363 oled.setDisplayScroll(true);
wim 6:44256b0b5d18 364
wim 6:44256b0b5d18 365 wait(5);
wim 6:44256b0b5d18 366
wim 6:44256b0b5d18 367 oled.setDisplayScroll(false);
wim 6:44256b0b5d18 368
wim 6:44256b0b5d18 369 pc.printf("H: Hor Scroll done\r");
wim 6:44256b0b5d18 370 break;
wim 6:44256b0b5d18 371
wim 6:44256b0b5d18 372
wim 6:44256b0b5d18 373 case 'V' :
wim 6:44256b0b5d18 374 pc.printf("V: Ver and Hor Scroll (Page 0-7)\r");
wim 6:44256b0b5d18 375
wim 6:44256b0b5d18 376
wim 6:44256b0b5d18 377 oled.setContinuousVerticalAndHorizontalScroll(true, PAGE0, PAGE7, 0x01, SCROLL_INTERVAL_25_FRAMES);
wim 6:44256b0b5d18 378 oled.setVerticalScrollArea(20, 20);
wim 6:44256b0b5d18 379
wim 6:44256b0b5d18 380 oled.setDisplayScroll(true);
wim 6:44256b0b5d18 381
wim 6:44256b0b5d18 382
wim 6:44256b0b5d18 383 wait(5);
wim 6:44256b0b5d18 384
wim 6:44256b0b5d18 385 oled.setDisplayScroll(false);
wim 6:44256b0b5d18 386
wim 6:44256b0b5d18 387 pc.printf("V: Ver and Hor Scroll done\r");
wim 6:44256b0b5d18 388 break;
wim 6:44256b0b5d18 389
wim 6:44256b0b5d18 390
wim 1:00053cb70ac5 391 } //switch
wim 1:00053cb70ac5 392 }//if
wim 1:00053cb70ac5 393 }//while
wim 1:00053cb70ac5 394 #endif
wim 1:00053cb70ac5 395
wim 1:00053cb70ac5 396 pc.printf("Bye World!\n\r");
wim 1:00053cb70ac5 397 }//main
wim 1:00053cb70ac5 398