Oled Adafruit i2c SSD1306

Dependencies:   Adafruit_GFX mbed

Fork of Test_OLED_Display by Johannes Stratmann

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?

UserRevisionLine numberNew 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 }