Oled Adafruit i2c SSD1306
Dependencies: Adafruit_GFX mbed
Fork of Test_OLED_Display by
main.cpp@4:be8f6c39c104, 2016-11-10 (annotated)
- Committer:
- JojoS
- Date:
- Thu Nov 10 13:07:03 2016 +0000
- Revision:
- 4:be8f6c39c104
- Parent:
- 3:671cc904fce6
- Child:
- 6:48879bf9b5b2
added definition for target LPC824
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JojoS | 0:e1e154fcc87e | 1 | #include "mbed.h" |
JojoS | 0:e1e154fcc87e | 2 | #include "Adafruit_SSD1306.h" |
JojoS | 0:e1e154fcc87e | 3 | |
JojoS |
3:671cc904fce6 | 4 | // Pindefinitions for ezSBC2 or LPCXpresso |
JojoS | 0:e1e154fcc87e | 5 | |
JojoS | 0:e1e154fcc87e | 6 | // an SPI sub-class that provides a constructed default |
JojoS | 0:e1e154fcc87e | 7 | class SPI2 : public SPI |
JojoS | 0:e1e154fcc87e | 8 | { |
JojoS | 0:e1e154fcc87e | 9 | public: |
JojoS | 4:be8f6c39c104 | 10 | SPI2(PinName mosi, PinName miso, PinName clk) : SPI(mosi, miso, clk) { |
JojoS | 4:be8f6c39c104 | 11 | format(8, 3); |
JojoS | 4:be8f6c39c104 | 12 | frequency(2000000); |
JojoS | 4:be8f6c39c104 | 13 | }; |
JojoS | 0:e1e154fcc87e | 14 | }; |
JojoS |
3:671cc904fce6 | 15 | |
JojoS | 0:e1e154fcc87e | 16 | // an I2C sub-class that provides a constructed default |
JojoS | 0:e1e154fcc87e | 17 | class I2C2 : public I2C |
JojoS | 0:e1e154fcc87e | 18 | { |
JojoS | 0:e1e154fcc87e | 19 | public: |
JojoS | 4:be8f6c39c104 | 20 | I2C2(PinName sda, PinName scl) : I2C(sda, scl) { |
JojoS | 4:be8f6c39c104 | 21 | frequency(400000); |
JojoS | 4:be8f6c39c104 | 22 | start(); |
JojoS | 4:be8f6c39c104 | 23 | }; |
JojoS | 0:e1e154fcc87e | 24 | }; |
JojoS |
3:671cc904fce6 | 25 | |
JojoS |
3:671cc904fce6 | 26 | #ifdef LPC1347 |
JojoS |
3:671cc904fce6 | 27 | // ezSBC2 |
JojoS |
3:671cc904fce6 | 28 | DigitalOut ledRed(P1_16); |
JojoS |
3:671cc904fce6 | 29 | DigitalOut ledGreen(P1_15); |
JojoS | 0:e1e154fcc87e | 30 | |
JojoS | 0:e1e154fcc87e | 31 | I2C2 gI2C(P0_5, P0_4); |
JojoS | 4:be8f6c39c104 | 32 | Adafruit_SSD1306_I2c gOled2(gI2C, NC, 0x78, 64, 128); |
JojoS | 4:be8f6c39c104 | 33 | #elif defined(TARGET_LPC824) |
JojoS | 4:be8f6c39c104 | 34 | DigitalOut ledRed(LED1); |
JojoS | 4:be8f6c39c104 | 35 | DigitalOut ledGreen(LED2); |
JojoS | 4:be8f6c39c104 | 36 | |
JojoS | 4:be8f6c39c104 | 37 | I2C2 gI2C(P0_11, P0_10); |
JojoS | 4:be8f6c39c104 | 38 | Adafruit_SSD1306_I2c gOled2(gI2C, NC, 0x78, 64, 128); |
JojoS | 4:be8f6c39c104 | 39 | #elif defined(LPC1549) |
JojoS |
3:671cc904fce6 | 40 | // LPCXpresso1549 |
JojoS |
3:671cc904fce6 | 41 | DigitalOut ledRed(LED1); |
JojoS |
3:671cc904fce6 | 42 | DigitalOut ledGreen(LED2); |
JojoS |
3:671cc904fce6 | 43 | |
JojoS |
3:671cc904fce6 | 44 | I2C2 gI2C(P0_23, P0_22); |
JojoS | 4:be8f6c39c104 | 45 | Adafruit_SSD1306_I2c gOled2(gI2C, NC, 0x78, 64, 128); |
JojoS | 4:be8f6c39c104 | 46 | #else |
JojoS | 4:be8f6c39c104 | 47 | #error "no target defined" |
JojoS |
3:671cc904fce6 | 48 | #endif |
JojoS |
3:671cc904fce6 | 49 | |
JojoS | 0:e1e154fcc87e | 50 | int main() |
JojoS |
3:671cc904fce6 | 51 | { |
JojoS | 4:be8f6c39c104 | 52 | uint16_t x = 0; |
JojoS | 0:e1e154fcc87e | 53 | |
JojoS | 4:be8f6c39c104 | 54 | //while(1) |
JojoS | 4:be8f6c39c104 | 55 | { |
JojoS | 4:be8f6c39c104 | 56 | ledRed = 1; |
JojoS | 4:be8f6c39c104 | 57 | ledGreen = 0; |
JojoS | 4:be8f6c39c104 | 58 | wait(0.5); |
JojoS |
3:671cc904fce6 | 59 | |
JojoS | 4:be8f6c39c104 | 60 | ledRed = 0; |
JojoS | 4:be8f6c39c104 | 61 | ledGreen = 1; |
JojoS | 4:be8f6c39c104 | 62 | wait(0.5); |
JojoS | 4:be8f6c39c104 | 63 | } |
JojoS |
3:671cc904fce6 | 64 | |
JojoS | 4:be8f6c39c104 | 65 | gOled2.clearDisplay(); |
JojoS | 4:be8f6c39c104 | 66 | gOled2.display(); |
JojoS | 0:e1e154fcc87e | 67 | |
JojoS | 4:be8f6c39c104 | 68 | //gOled2.setTextCursor(1, 0); |
JojoS | 4:be8f6c39c104 | 69 | gOled2.printf("%ux%u OLED Display\r\n", gOled2.width(), gOled2.height()); |
JojoS | 4:be8f6c39c104 | 70 | |
JojoS | 4:be8f6c39c104 | 71 | while (1) { |
JojoS | 4:be8f6c39c104 | 72 | ledRed = !ledRed; |
JojoS |
3:671cc904fce6 | 73 | |
JojoS | 4:be8f6c39c104 | 74 | gOled2.setTextCursor(0, 10); |
JojoS | 4:be8f6c39c104 | 75 | gOled2.printf("%u\r", x); |
JojoS | 4:be8f6c39c104 | 76 | gOled2.display(); |
JojoS | 0:e1e154fcc87e | 77 | |
JojoS | 4:be8f6c39c104 | 78 | x++; |
JojoS | 4:be8f6c39c104 | 79 | wait(1.0); |
JojoS | 4:be8f6c39c104 | 80 | } |
JojoS | 4:be8f6c39c104 | 81 | // AnalogOut sine(PA_4); |
JojoS |
3:671cc904fce6 | 82 | |
JojoS |
3:671cc904fce6 | 83 | |
JojoS | 0:e1e154fcc87e | 84 | } |