displaying on SSD1306, 128x64 pixels OLED

Dependencies:   microbit

Committer:
bvirk
Date:
Tue Feb 25 20:59:35 2020 +0000
Revision:
12:b4d5e007640e
Parent:
8:5972683a7190
doc removed from cpp files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bvirk 7:7b225c565fe6 1 #include "MicroBit.h"
bvirk 7:7b225c565fe6 2
bvirk 7:7b225c565fe6 3 #include "Display.h"
bvirk 7:7b225c565fe6 4 #include "common.h"
bvirk 7:7b225c565fe6 5
bvirk 8:5972683a7190 6
bvirk 7:7b225c565fe6 7
bvirk 7:7b225c565fe6 8 int8_t pixels[] =
bvirk 7:7b225c565fe6 9 {4,8,10,12,16,0,4,9,14,19,24,2,7,8,25,0,6,7,8,9,10,12,14,18,-1};
bvirk 7:7b225c565fe6 10
bvirk 7:7b225c565fe6 11
bvirk 7:7b225c565fe6 12 int8_t yield() {
bvirk 8:5972683a7190 13 static int8_t column=0;
bvirk 7:7b225c565fe6 14 int8_t retval = pixels[column++];
bvirk 7:7b225c565fe6 15 if (retval == -1) {
bvirk 7:7b225c565fe6 16 column=0;
bvirk 7:7b225c565fe6 17 return -1;
bvirk 7:7b225c565fe6 18 }
bvirk 7:7b225c565fe6 19 return retval-1;
bvirk 7:7b225c565fe6 20 }
bvirk 7:7b225c565fe6 21
bvirk 7:7b225c565fe6 22
bvirk 7:7b225c565fe6 23 void flag1(int8_t(*yieldF)()) {
bvirk 7:7b225c565fe6 24 for (int8_t i=0; i < 5; i++) {
bvirk 7:7b225c565fe6 25 display.setFlag(6*i);
bvirk 7:7b225c565fe6 26 display.setFlag(4+4*i);
bvirk 7:7b225c565fe6 27 }
bvirk 7:7b225c565fe6 28 }
bvirk 7:7b225c565fe6 29
bvirk 7:7b225c565fe6 30 void flag2(int8_t(*yieldF)()) {
bvirk 7:7b225c565fe6 31 int8_t p;
bvirk 7:7b225c565fe6 32 while ((p = (yieldF)())!=-1) {
bvirk 7:7b225c565fe6 33 display.setFlag(p);
bvirk 7:7b225c565fe6 34 }
bvirk 7:7b225c565fe6 35 }
bvirk 7:7b225c565fe6 36
bvirk 7:7b225c565fe6 37 void (*flg[])(int8_t(*yieldF)()) = {flag1,flag2};
bvirk 7:7b225c565fe6 38
bvirk 7:7b225c565fe6 39 void example_flag() {
bvirk 7:7b225c565fe6 40 int8_t i=0;
bvirk 7:7b225c565fe6 41 while (true) {
bvirk 7:7b225c565fe6 42 display.clear();
bvirk 7:7b225c565fe6 43 (flg[i>0 ? 1 : 0])(yield);
bvirk 7:7b225c565fe6 44 i=(i+1) & 3;
bvirk 7:7b225c565fe6 45 uBit.sleep(2000);
bvirk 7:7b225c565fe6 46 }
bvirk 7:7b225c565fe6 47 }