Oled Adafruit i2c SSD1306

Dependencies:   Adafruit_GFX mbed

Fork of Test_OLED_Display by Johannes Stratmann

Committer:
JojoS
Date:
Sat Sep 17 15:30:02 2016 +0200
Revision:
3:671cc904fce6
Parent:
0:e1e154fcc87e
Child:
4:be8f6c39c104
Pindefinitions for ezSBC2 or LPCXpresso

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 3:671cc904fce6 10 SPI2(PinName mosi, PinName miso, PinName clk) : SPI(mosi, miso, clk)
JojoS 3:671cc904fce6 11 {
JojoS 3:671cc904fce6 12 format(8, 3);
JojoS 3:671cc904fce6 13 frequency(2000000);
JojoS 3:671cc904fce6 14 };
JojoS 0:e1e154fcc87e 15 };
JojoS 3:671cc904fce6 16
JojoS 0:e1e154fcc87e 17 // an I2C sub-class that provides a constructed default
JojoS 0:e1e154fcc87e 18 class I2C2 : public I2C
JojoS 0:e1e154fcc87e 19 {
JojoS 0:e1e154fcc87e 20 public:
JojoS 3:671cc904fce6 21 I2C2(PinName sda, PinName scl) : I2C(sda, scl)
JojoS 3:671cc904fce6 22 {
JojoS 3:671cc904fce6 23 frequency(400000);
JojoS 3:671cc904fce6 24 start();
JojoS 3:671cc904fce6 25 };
JojoS 0:e1e154fcc87e 26 };
JojoS 3:671cc904fce6 27
JojoS 3:671cc904fce6 28 #ifdef LPC1347
JojoS 3:671cc904fce6 29 // ezSBC2
JojoS 3:671cc904fce6 30 DigitalOut ledRed(P1_16);
JojoS 3:671cc904fce6 31 DigitalOut ledGreen(P1_15);
JojoS 0:e1e154fcc87e 32
JojoS 0:e1e154fcc87e 33 I2C2 gI2C(P0_5, P0_4);
JojoS 0:e1e154fcc87e 34 Adafruit_SSD1306_I2c gOled2(gI2C, P0_21, 0x78, 64, 128);
JojoS 3:671cc904fce6 35 // Adafruit_SSD1306_I2c gOled2(gI2C, P0_21, 0x78, 64, 128); // works only with mbed libs < version 86
JojoS 3:671cc904fce6 36 #else
JojoS 3:671cc904fce6 37 // LPCXpresso1549
JojoS 3:671cc904fce6 38 DigitalOut ledRed(LED1);
JojoS 3:671cc904fce6 39 DigitalOut ledGreen(LED2);
JojoS 3:671cc904fce6 40
JojoS 3:671cc904fce6 41 I2C2 gI2C(P0_23, P0_22);
JojoS 3:671cc904fce6 42 Adafruit_SSD1306_I2c gOled2(gI2C, P0_21, 0x78, 64, 128);
JojoS 3:671cc904fce6 43 #endif
JojoS 3:671cc904fce6 44
JojoS 0:e1e154fcc87e 45 int main()
JojoS 3:671cc904fce6 46 {
JojoS 3:671cc904fce6 47 uint16_t x = 0;
JojoS 0:e1e154fcc87e 48
JojoS 3:671cc904fce6 49 //while(1)
JojoS 3:671cc904fce6 50 {
JojoS 3:671cc904fce6 51 ledRed = 1;
JojoS 3:671cc904fce6 52 ledGreen = 0;
JojoS 3:671cc904fce6 53 wait(0.5);
JojoS 0:e1e154fcc87e 54
JojoS 3:671cc904fce6 55 ledRed = 0;
JojoS 3:671cc904fce6 56 ledGreen = 1;
JojoS 3:671cc904fce6 57 wait(0.5);
JojoS 3:671cc904fce6 58 }
JojoS 3:671cc904fce6 59
JojoS 3:671cc904fce6 60 gOled2.clearDisplay();
JojoS 3:671cc904fce6 61 gOled2.display();
JojoS 3:671cc904fce6 62
JojoS 3:671cc904fce6 63 //gOled2.setTextCursor(1, 0);
JojoS 3:671cc904fce6 64 gOled2.printf("%ux%u OLED Display\r\n", gOled2.width(), gOled2.height());
JojoS 0:e1e154fcc87e 65
JojoS 3:671cc904fce6 66 while (1)
JojoS 3:671cc904fce6 67 {
JojoS 3:671cc904fce6 68 ledRed = !ledRed;
JojoS 3:671cc904fce6 69
JojoS 3:671cc904fce6 70 gOled2.setTextCursor(0, 10);
JojoS 3:671cc904fce6 71 gOled2.printf("%u\r", x);
JojoS 3:671cc904fce6 72 gOled2.display();
JojoS 0:e1e154fcc87e 73
JojoS 3:671cc904fce6 74 x++;
JojoS 3:671cc904fce6 75 wait(1.0);
JojoS 3:671cc904fce6 76 }
JojoS 3:671cc904fce6 77 // AnalogOut sine(PA_4);
JojoS 3:671cc904fce6 78
JojoS 3:671cc904fce6 79
JojoS 0:e1e154fcc87e 80 }