ssd1306 update

This commit is contained in:
lilian 2017-08-04 18:38:34 -03:00
parent 2eb50c5f22
commit 92b18cf2fd
4 changed files with 12 additions and 10 deletions

View file

@ -23,6 +23,7 @@
#ifdef I2C_CONNECTION #ifdef I2C_CONNECTION
#define PROTOCOL SSD1306_PROTO_I2C #define PROTOCOL SSD1306_PROTO_I2C
#define ADDR SSD1306_I2C_ADDR_0 #define ADDR SSD1306_I2C_ADDR_0
#define I2C_BUS 0
#define SCL_PIN 5 #define SCL_PIN 5
#define SDA_PIN 4 #define SDA_PIN 4
#else #else
@ -35,7 +36,8 @@
static const ssd1306_t dev = { static const ssd1306_t dev = {
.protocol = PROTOCOL, .protocol = PROTOCOL,
#ifdef I2C_CONNECTION #ifdef I2C_CONNECTION
.addr = ADDR, .i2c_dev.bus = I2C_BUS,
.i2c_dev.addr = ADDR,
#else #else
.cs_pin = CS_PIN, .cs_pin = CS_PIN,
.dc_pin = DC_PIN, .dc_pin = DC_PIN,
@ -97,7 +99,7 @@ void user_init(void)
printf("SDK version:%s\n", sdk_system_get_sdk_version()); printf("SDK version:%s\n", sdk_system_get_sdk_version());
#ifdef I2C_CONNECTION #ifdef I2C_CONNECTION
i2c_init(SCL_PIN, SDA_PIN); i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K);
#endif #endif
while (ssd1306_init(&dev) != 0) while (ssd1306_init(&dev) != 0)

View file

@ -29,6 +29,7 @@
#ifdef I2C_CONNECTION #ifdef I2C_CONNECTION
#define PROTOCOL SSD1306_PROTO_I2C #define PROTOCOL SSD1306_PROTO_I2C
#define ADDR SSD1306_I2C_ADDR_0 #define ADDR SSD1306_I2C_ADDR_0
#define I2C_BUS 0
#define SCL_PIN 5 #define SCL_PIN 5
#define SDA_PIN 4 #define SDA_PIN 4
#else #else
@ -43,7 +44,8 @@
static const ssd1306_t dev = { static const ssd1306_t dev = {
.protocol = PROTOCOL, .protocol = PROTOCOL,
#ifdef I2C_CONNECTION #ifdef I2C_CONNECTION
.addr = ADDR, .i2c_dev.bus = I2C_BUS,
.i2c_dev.addr = ADDR,
#else #else
.cs_pin = CS_PIN, .cs_pin = CS_PIN,
.dc_pin = DC_PIN, .dc_pin = DC_PIN,
@ -162,7 +164,7 @@ void user_init(void)
printf("SDK version:%s\n", sdk_system_get_sdk_version()); printf("SDK version:%s\n", sdk_system_get_sdk_version());
#ifdef I2C_CONNECTION #ifdef I2C_CONNECTION
i2c_init(SCL_PIN, SDA_PIN); i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K);
#endif #endif
while (ssd1306_init(&dev) != 0) { while (ssd1306_init(&dev) != 0) {

View file

@ -11,9 +11,6 @@
*/ */
#include "ssd1306.h" #include "ssd1306.h"
#include <stdio.h> #include <stdio.h>
#if (SSD1306_I2C_SUPPORT)
#include <i2c/i2c.h>
#endif
#if (SSD1306_SPI4_SUPPORT) || (SSD1306_SPI3_SUPPORT) #if (SSD1306_SPI4_SUPPORT) || (SSD1306_SPI3_SUPPORT)
#include <esp/spi.h> #include <esp/spi.h>
#endif #endif
@ -92,14 +89,14 @@
#if (SSD1306_I2C_SUPPORT) #if (SSD1306_I2C_SUPPORT)
static int inline i2c_send(const ssd1306_t *dev, uint8_t reg, uint8_t* data, uint8_t len) static int inline i2c_send(const ssd1306_t *dev, uint8_t reg, uint8_t* data, uint8_t len)
{ {
return i2c_slave_write(dev->addr, &reg, data, len); return i2c_slave_write(dev->i2c_dev.bus, dev->i2c_dev.addr , &reg, data, len);
} }
#endif #endif
/* Issue a command to SSD1306 device /* Issue a command to SSD1306 device
* I2C proto format: * I2C proto format:
* |S|Slave Address|W|ACK|0x00|Command|Ack|P| * |S|Slave Address|W|ACK|0x00|Command|Ack|P|
* *
* in case of two-bytes command here will be Data byte * in case of two-bytes command here will be Data byte
* right after the command byte. * right after the command byte.
*/ */

View file

@ -19,6 +19,7 @@
// shifted // shifted
#if (SSD1306_I2C_SUPPORT) #if (SSD1306_I2C_SUPPORT)
#include <i2c/i2c.h>
#define SSD1306_I2C_ADDR_0 (0x3C) #define SSD1306_I2C_ADDR_0 (0x3C)
#define SSD1306_I2C_ADDR_1 (0x3D) #define SSD1306_I2C_ADDR_1 (0x3D)
#endif #endif
@ -67,7 +68,7 @@ typedef struct
ssd1306_screen_t screen ; ssd1306_screen_t screen ;
union { union {
#if (SSD1306_I2C_SUPPORT) #if (SSD1306_I2C_SUPPORT)
uint8_t addr ; //!< I2C address, used by SSD1306_PROTO_I2C i2c_dev_t i2c_dev; //!< I2C devuce descriptor, used by SSD1306_PROTO_I2C
#endif #endif
uint8_t cs_pin ; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4 uint8_t cs_pin ; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4
} ; } ;