Console Serial IO con display OLED e seriale asincrona
Dependencies: mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2
Fork of SerialIO by
Console Serial IO con display OLED e seriale asincrona
macroDisp.h@11:b57dee0f344e, 2015-08-16 (annotated)
- Committer:
- MaxScorda
- Date:
- Sun Aug 16 23:12:06 2015 +0000
- Revision:
- 11:b57dee0f344e
- Parent:
- 10:5c406bde1edf
- Child:
- 17:7c8c37fbec9f
comm2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MaxScorda | 10:5c406bde1edf | 1 | //Oled |
MaxScorda | 10:5c406bde1edf | 2 | #include "ssd1306.h" |
MaxScorda | 10:5c406bde1edf | 3 | #include "standard_font.h" |
MaxScorda | 10:5c406bde1edf | 4 | #include "bold_font.h" |
MaxScorda | 10:5c406bde1edf | 5 | |
MaxScorda | 10:5c406bde1edf | 6 | /* definitions for ST Nucleo L152RE */ |
MaxScorda | 10:5c406bde1edf | 7 | #define CSEL PB_6 // CS D10 |
MaxScorda | 10:5c406bde1edf | 8 | #define RST PC_7 // D9 rst pin9 |
MaxScorda | 10:5c406bde1edf | 9 | #define DCMD PA_9 // DC D8 dc pin8 |
MaxScorda | 10:5c406bde1edf | 10 | #define CLK PA_5 // CLK D13 d0 pin13 |
MaxScorda | 10:5c406bde1edf | 11 | #define DATA PA_7 // MOSI D11 d1 pin11 |
MaxScorda | 10:5c406bde1edf | 12 | |
MaxScorda | 10:5c406bde1edf | 13 | |
MaxScorda | 10:5c406bde1edf | 14 | SSD1306 oled(CSEL, RST, DCMD, CLK, DATA); // STM32 Nucleo |
MaxScorda | 10:5c406bde1edf | 15 | |
MaxScorda | 10:5c406bde1edf | 16 | |
MaxScorda | 10:5c406bde1edf | 17 | static const unsigned char oldlogo16_glcd_bmp[] = { |
MaxScorda | 10:5c406bde1edf | 18 | 0x00, 0xc0, // B00000000, B11000000, |
MaxScorda | 10:5c406bde1edf | 19 | 0x01, 0xc0, // B00000001, B11000000, |
MaxScorda | 10:5c406bde1edf | 20 | 0x01, 0xc0, // B00000001, B11000000, |
MaxScorda | 10:5c406bde1edf | 21 | 0x03, 0xe0, // B00000011, B11100000, |
MaxScorda | 10:5c406bde1edf | 22 | 0xf3, 0xe0, // B11110011, B11100000, |
MaxScorda | 10:5c406bde1edf | 23 | 0xfe, 0xf8, // B11111110, B11111000, |
MaxScorda | 10:5c406bde1edf | 24 | 0x7e, 0xff, // B01111110, B11111111, |
MaxScorda | 10:5c406bde1edf | 25 | 0x33, 0x9f, // B00110011, B10011111, |
MaxScorda | 10:5c406bde1edf | 26 | 0x1f, 0xfc, // B00011111, B11111100, |
MaxScorda | 10:5c406bde1edf | 27 | 0x0d, 0x70, // B00001101, B01110000, |
MaxScorda | 10:5c406bde1edf | 28 | 0x1b, 0xa0, // B00011011, B10100000, |
MaxScorda | 10:5c406bde1edf | 29 | 0x3f, 0xe0, // B00111111, B11100000, |
MaxScorda | 10:5c406bde1edf | 30 | 0x3f, 0xf0, // B00111111, B11110000, |
MaxScorda | 10:5c406bde1edf | 31 | 0x7c, 0xf0, // B01111100, B11110000, |
MaxScorda | 10:5c406bde1edf | 32 | 0x70, 0x70, // B01110000, B01110000, |
MaxScorda | 10:5c406bde1edf | 33 | 0x00, 0x30 |
MaxScorda | 10:5c406bde1edf | 34 | }; // B00000000, B00110000 }; |
MaxScorda | 10:5c406bde1edf | 35 | |
MaxScorda | 10:5c406bde1edf | 36 | static const unsigned char dog16_glcd_bmp[] = { |
MaxScorda | 10:5c406bde1edf | 37 | 0x18, 0x18, // B00000000, B11000000, |
MaxScorda | 10:5c406bde1edf | 38 | 0x26, 0x64, // B00000001, B11000000, |
MaxScorda | 10:5c406bde1edf | 39 | 0x42, 0x42, // B00000001, B11000000, |
MaxScorda | 10:5c406bde1edf | 40 | 0x41, 0x82, // B00000011, B11100000, |
MaxScorda | 10:5c406bde1edf | 41 | 0x40, 0x2, // B11110011, B11100000, |
MaxScorda | 10:5c406bde1edf | 42 | 0x80, 0x1 , // B11111110, B11111000, |
MaxScorda | 10:5c406bde1edf | 43 | 0x8C, 0x31, // B01111110, B11111111, |
MaxScorda | 10:5c406bde1edf | 44 | 0x8C, 0x31, // B00110011, B10011111, |
MaxScorda | 10:5c406bde1edf | 45 | 0x40, 0x2 , // B00011111, B11111100, |
MaxScorda | 10:5c406bde1edf | 46 | 0x41, 0x82, // B00001101, B01110000, |
MaxScorda | 10:5c406bde1edf | 47 | 0x21, 0x84, // B00011011, B10100000, |
MaxScorda | 10:5c406bde1edf | 48 | 0x10, 0x8 , // B00111111, B11100000, |
MaxScorda | 10:5c406bde1edf | 49 | 0x13, 0xC8, // B00111111, B11110000, |
MaxScorda | 10:5c406bde1edf | 50 | 0x8 , 0x10, // B01111100, B11110000, |
MaxScorda | 10:5c406bde1edf | 51 | 0x4, 0x20, // B01110000, B01110000, |
MaxScorda | 10:5c406bde1edf | 52 | 0x3 , 0xC0 |
MaxScorda | 10:5c406bde1edf | 53 | }; |
MaxScorda | 10:5c406bde1edf | 54 | |
MaxScorda | 10:5c406bde1edf | 55 | static const unsigned char logo16_glcd_bmp[] = { |
MaxScorda | 10:5c406bde1edf | 56 | 0x1 , 0x80, // B00000000, B11000000, |
MaxScorda | 10:5c406bde1edf | 57 | 0x1 , 0xC0, // B00000001, B11000000, |
MaxScorda | 10:5c406bde1edf | 58 | 0x1 , 0xE0, // B00000001, B11000000, |
MaxScorda | 10:5c406bde1edf | 59 | 0x1 , 0xB0, // B00000011, B11100000, |
MaxScorda | 10:5c406bde1edf | 60 | 0x1 , 0x98, // B11110011, B11100000, |
MaxScorda | 10:5c406bde1edf | 61 | 0x1 , 0x8C, // B11111110, B11111000, |
MaxScorda | 10:5c406bde1edf | 62 | 0x1 , 0x86, // B01111110, B11111111, |
MaxScorda | 10:5c406bde1edf | 63 | 0xFF, 0x83, // B00110011, B10011111, |
MaxScorda | 10:5c406bde1edf | 64 | 0xFF, 0x8F, // B00011111, B11111100, |
MaxScorda | 10:5c406bde1edf | 65 | 0x60, 0x10, // B00001101, B01110000, |
MaxScorda | 10:5c406bde1edf | 66 | 0x30, 0x20, // B00011011, B10100000, |
MaxScorda | 10:5c406bde1edf | 67 | 0x18, 0x4F, // B00111111, B11100000, |
MaxScorda | 10:5c406bde1edf | 68 | 0xC , 0xF2, // B00111111, B11110000, |
MaxScorda | 10:5c406bde1edf | 69 | 0x6 , 0x4 , // B01111100, B11110000, |
MaxScorda | 10:5c406bde1edf | 70 | 0x3, 0x8 , // B01110000, B01110000, |
MaxScorda | 10:5c406bde1edf | 71 | 0x1 , 0xF0 |
MaxScorda | 10:5c406bde1edf | 72 | }; |
MaxScorda | 10:5c406bde1edf | 73 | //---------- oled ----------------------- |
MaxScorda | 10:5c406bde1edf | 74 | |
MaxScorda | 10:5c406bde1edf | 75 | bool initDisp(int disptype) |
MaxScorda | 10:5c406bde1edf | 76 | { |
MaxScorda | 10:5c406bde1edf | 77 | bool ret=true; |
MaxScorda | 10:5c406bde1edf | 78 | switch (disptype) { |
MaxScorda | 10:5c406bde1edf | 79 | case 0: //oled |
MaxScorda | 11:b57dee0f344e | 80 | oled.initialise(); |
MaxScorda | 11:b57dee0f344e | 81 | oled.clear(); |
MaxScorda | 11:b57dee0f344e | 82 | oled.set_contrast(255); // max contrast |
MaxScorda | 11:b57dee0f344e | 83 | oled.update(); |
MaxScorda | 10:5c406bde1edf | 84 | break; |
MaxScorda | 10:5c406bde1edf | 85 | case 1: //lcd |
MaxScorda | 10:5c406bde1edf | 86 | break; |
MaxScorda | 10:5c406bde1edf | 87 | } |
MaxScorda | 10:5c406bde1edf | 88 | return ret; |
MaxScorda | 10:5c406bde1edf | 89 | } |
MaxScorda | 11:b57dee0f344e | 90 | |
MaxScorda | 11:b57dee0f344e | 91 | void setFontDisp(int disptype, char fontType) |
MaxScorda | 11:b57dee0f344e | 92 | { |
MaxScorda | 11:b57dee0f344e | 93 | switch (disptype) { |
MaxScorda | 11:b57dee0f344e | 94 | case 0: //oled |
MaxScorda | 11:b57dee0f344e | 95 | if (fontType=='N') oled.set_font(standard_font, 6); |
MaxScorda | 11:b57dee0f344e | 96 | if (fontType=='B') oled.set_font(bold_font, 8); |
MaxScorda | 11:b57dee0f344e | 97 | if (fontType=='D') oled.set_double_height_text(1); |
MaxScorda | 11:b57dee0f344e | 98 | break; |
MaxScorda | 11:b57dee0f344e | 99 | case 1: //lcd |
MaxScorda | 11:b57dee0f344e | 100 | break; |
MaxScorda | 11:b57dee0f344e | 101 | } |
MaxScorda | 11:b57dee0f344e | 102 | } |
MaxScorda | 11:b57dee0f344e | 103 | |
MaxScorda | 11:b57dee0f344e | 104 | void printDisp(int disptype, char *format) |
MaxScorda | 11:b57dee0f344e | 105 | { |
MaxScorda | 11:b57dee0f344e | 106 | switch (disptype) { |
MaxScorda | 11:b57dee0f344e | 107 | case 0: //oled |
MaxScorda | 11:b57dee0f344e | 108 | oled.printf(format); |
MaxScorda | 11:b57dee0f344e | 109 | oled.update(); |
MaxScorda | 11:b57dee0f344e | 110 | break; |
MaxScorda | 11:b57dee0f344e | 111 | case 1: //lcd |
MaxScorda | 11:b57dee0f344e | 112 | break; |
MaxScorda | 11:b57dee0f344e | 113 | } |
MaxScorda | 11:b57dee0f344e | 114 | } |