Test with EzSbc2 LPC1347 board and Adafruit OLED 0,96" display, connected to i2c renamed from initial test 'mbed_blinky'
Dependencies: Adafruit_GFX mbed
main.cpp@8:39ab4809058a, 2017-07-25 (annotated)
- Committer:
- JojoS
- Date:
- Tue Jul 25 09:16:28 2017 +0000
- Revision:
- 8:39ab4809058a
- Parent:
- 7:f3f848a6bfee
updated mbed to Rev 147
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 | 6:48879bf9b5b2 | 37 | I2C2 gI2C(SDA, SCL); |
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 | 6:48879bf9b5b2 | 44 | I2C2 gI2C(SDA, SCL); |
JojoS | 4:be8f6c39c104 | 45 | Adafruit_SSD1306_I2c gOled2(gI2C, NC, 0x78, 64, 128); |
JojoS | 7:f3f848a6bfee | 46 | #elif defined (TARGET_LPC4088) |
JojoS | 7:f3f848a6bfee | 47 | DigitalOut ledRed(LED1); |
JojoS | 7:f3f848a6bfee | 48 | DigitalOut ledGreen(LED2); |
JojoS | 7:f3f848a6bfee | 49 | |
JojoS | 7:f3f848a6bfee | 50 | I2C2 gI2C(MBED_I2C0); |
JojoS | 7:f3f848a6bfee | 51 | Adafruit_SSD1306_I2c gOled2(gI2C, NC, 0x78, 64, 128); |
JojoS | 4:be8f6c39c104 | 52 | #else |
JojoS | 4:be8f6c39c104 | 53 | #error "no target defined" |
JojoS |
3:671cc904fce6 | 54 | #endif |
JojoS |
3:671cc904fce6 | 55 | |
JojoS | 0:e1e154fcc87e | 56 | int main() |
JojoS |
3:671cc904fce6 | 57 | { |
JojoS | 4:be8f6c39c104 | 58 | uint16_t x = 0; |
JojoS | 0:e1e154fcc87e | 59 | |
JojoS | 4:be8f6c39c104 | 60 | //while(1) |
JojoS | 4:be8f6c39c104 | 61 | { |
JojoS | 4:be8f6c39c104 | 62 | ledRed = 1; |
JojoS | 4:be8f6c39c104 | 63 | ledGreen = 0; |
JojoS | 4:be8f6c39c104 | 64 | wait(0.5); |
JojoS |
3:671cc904fce6 | 65 | |
JojoS | 4:be8f6c39c104 | 66 | ledRed = 0; |
JojoS | 4:be8f6c39c104 | 67 | ledGreen = 1; |
JojoS | 4:be8f6c39c104 | 68 | wait(0.5); |
JojoS | 4:be8f6c39c104 | 69 | } |
JojoS |
3:671cc904fce6 | 70 | |
JojoS | 4:be8f6c39c104 | 71 | gOled2.clearDisplay(); |
JojoS | 4:be8f6c39c104 | 72 | gOled2.display(); |
JojoS | 0:e1e154fcc87e | 73 | |
JojoS | 4:be8f6c39c104 | 74 | //gOled2.setTextCursor(1, 0); |
JojoS | 4:be8f6c39c104 | 75 | gOled2.printf("%ux%u OLED Display\r\n", gOled2.width(), gOled2.height()); |
JojoS | 4:be8f6c39c104 | 76 | |
JojoS | 4:be8f6c39c104 | 77 | while (1) { |
JojoS | 4:be8f6c39c104 | 78 | ledRed = !ledRed; |
JojoS |
3:671cc904fce6 | 79 | |
JojoS | 4:be8f6c39c104 | 80 | gOled2.setTextCursor(0, 10); |
JojoS | 4:be8f6c39c104 | 81 | gOled2.printf("%u\r", x); |
JojoS | 4:be8f6c39c104 | 82 | gOled2.display(); |
JojoS | 0:e1e154fcc87e | 83 | |
JojoS | 4:be8f6c39c104 | 84 | x++; |
JojoS | 4:be8f6c39c104 | 85 | wait(1.0); |
JojoS | 4:be8f6c39c104 | 86 | } |
JojoS | 0:e1e154fcc87e | 87 | } |