displaying on SSD1306, 128x64 pixels OLED
example_peek.cpp@8:5972683a7190, 2020-02-24 (annotated)
- 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?
User | Revision | Line number | New 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 |