displaying on SSD1306, 128x64 pixels OLED

Dependencies:   microbit

Committer:
bvirk
Date:
Mon Feb 24 18:31:22 2020 +0000
Revision:
8:5972683a7190
Parent:
7:7b225c565fe6
class header doc copied to cpp files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bvirk 7:7b225c565fe6 1 #include "MicroBit.h"
bvirk 7:7b225c565fe6 2 #include "MicroBitPin.h"
bvirk 7:7b225c565fe6 3 #include "cppNorm.h"
bvirk 7:7b225c565fe6 4 #include "common.h"
bvirk 7:7b225c565fe6 5
bvirk 7:7b225c565fe6 6
bvirk 7:7b225c565fe6 7 /**
bvirk 7:7b225c565fe6 8 * conclusion: items incl char and char[] are on stack 4 byte alligned (0,4,8,c)
bvirk 7:7b225c565fe6 9 * on global data char isn't aligned.
bvirk 7:7b225c565fe6 10 * int8_t[] seems to 2 aligned, but it would demand a clean global date area to find out
bvirk 7:7b225c565fe6 11 * variables are not source code ordered!
bvirk 7:7b225c565fe6 12 */
bvirk 7:7b225c565fe6 13 void typeSizeAndAlignment() {
bvirk 7:7b225c565fe6 14 #define outputscreeen1
bvirk 7:7b225c565fe6 15 #ifdef outputscreeen1
bvirk 7:7b225c565fe6 16 double d1;
bvirk 7:7b225c565fe6 17 int8_t int8[3];
bvirk 7:7b225c565fe6 18 int16_t int16;
bvirk 7:7b225c565fe6 19 int32_t int32;
bvirk 7:7b225c565fe6 20 int32_t i32;
bvirk 7:7b225c565fe6 21 // ADRESS bytes in decimal
bvirk 7:7b225c565fe6 22 //
bvirk 7:7b225c565fe6 23 void *addresses[] = {
bvirk 7:7b225c565fe6 24 int8 // b8 4
bvirk 7:7b225c565fe6 25 ,&int8[3] // bb 3
bvirk 7:7b225c565fe6 26 ,&int16 // bc 4
bvirk 7:7b225c565fe6 27 ,&d1 // c0 8
bvirk 7:7b225c565fe6 28 ,&int32 // c8 4
bvirk 7:7b225c565fe6 29 ,&i32}; // cc
bvirk 7:7b225c565fe6 30 char names[][8] = {
bvirk 7:7b225c565fe6 31 "int8"
bvirk 7:7b225c565fe6 32 ,"int8[3]"
bvirk 7:7b225c565fe6 33 ,"int16"
bvirk 7:7b225c565fe6 34 ,"d1"
bvirk 7:7b225c565fe6 35 ,"int32"
bvirk 7:7b225c565fe6 36 ,"i32"
bvirk 7:7b225c565fe6 37 };
bvirk 7:7b225c565fe6 38 #else
bvirk 7:7b225c565fe6 39 int i;
bvirk 7:7b225c565fe6 40 float f;
bvirk 7:7b225c565fe6 41 char ch1;
bvirk 7:7b225c565fe6 42 char chre[9];
bvirk 7:7b225c565fe6 43 char chr3[3];
bvirk 7:7b225c565fe6 44 char chr4[4];
bvirk 7:7b225c565fe6 45 char chr2[2];
bvirk 7:7b225c565fe6 46 // ADRESS bytes(decimal)
bvirk 7:7b225c565fe6 47 void *addresses[] = {
bvirk 7:7b225c565fe6 48 chre // ac 12
bvirk 7:7b225c565fe6 49 ,&i // b8 4
bvirk 7:7b225c565fe6 50 ,&f // bc 4
bvirk 7:7b225c565fe6 51 ,&ch1 // c0 4
bvirk 7:7b225c565fe6 52 ,chr3 // c4 4
bvirk 7:7b225c565fe6 53 ,chr4 // c8 4
bvirk 7:7b225c565fe6 54 ,chr2 }; // cc
bvirk 7:7b225c565fe6 55 char names[][8] = {
bvirk 7:7b225c565fe6 56 "chre[9]"
bvirk 7:7b225c565fe6 57 ,"i"
bvirk 7:7b225c565fe6 58 ,"f"
bvirk 7:7b225c565fe6 59 ,"ch1"
bvirk 7:7b225c565fe6 60 ,"chr3[3]"
bvirk 7:7b225c565fe6 61 ,"chr4[4]"
bvirk 7:7b225c565fe6 62 ,"chr2[2]"
bvirk 7:7b225c565fe6 63 };
bvirk 7:7b225c565fe6 64
bvirk 7:7b225c565fe6 65 #endif
bvirk 7:7b225c565fe6 66
bvirk 7:7b225c565fe6 67 for (int i=0; i < sizeof(addresses)/4; i++)
bvirk 7:7b225c565fe6 68 oled.printf("%-8s %p\n",names[i],addresses[i]);
bvirk 7:7b225c565fe6 69 }
bvirk 7:7b225c565fe6 70 struct {
bvirk 7:7b225c565fe6 71 const static int isConstStatic=0;
bvirk 7:7b225c565fe6 72 } HasConstStatic;
bvirk 7:7b225c565fe6 73
bvirk 8:5972683a7190 74 int csint;
bvirk 7:7b225c565fe6 75
bvirk 7:7b225c565fe6 76 void isGlobalConstStaticFlashed() {
bvirk 8:5972683a7190 77 static int k=2;
bvirk 7:7b225c565fe6 78 oled.printf("const static \naddr:%p\n",&csint);
bvirk 7:7b225c565fe6 79 oled.printf("addr:%p\n",&HasConstStatic.isConstStatic);
bvirk 8:5972683a7190 80 oled.printf("addr:%p\n",&k);
bvirk 8:5972683a7190 81 oled.printf("%d",csint);
bvirk 7:7b225c565fe6 82 }
bvirk 7:7b225c565fe6 83
bvirk 7:7b225c565fe6 84 void example_peek() {
bvirk 7:7b225c565fe6 85 oled.init();
bvirk 7:7b225c565fe6 86 //typeSizeAndAlignment();
bvirk 7:7b225c565fe6 87 isGlobalConstStaticFlashed();
bvirk 7:7b225c565fe6 88 release_fiber();
bvirk 7:7b225c565fe6 89 }
bvirk 7:7b225c565fe6 90
bvirk 7:7b225c565fe6 91