ssd1306 update
This commit is contained in:
parent
dd072bd7db
commit
157167f173
4 changed files with 12 additions and 10 deletions
|
|
@ -23,6 +23,7 @@
|
|||
#ifdef I2C_CONNECTION
|
||||
#define PROTOCOL SSD1306_PROTO_I2C
|
||||
#define ADDR SSD1306_I2C_ADDR_0
|
||||
#define I2C_BUS 0
|
||||
#define SCL_PIN 5
|
||||
#define SDA_PIN 4
|
||||
#else
|
||||
|
|
@ -35,7 +36,8 @@
|
|||
static const ssd1306_t dev = {
|
||||
.protocol = PROTOCOL,
|
||||
#ifdef I2C_CONNECTION
|
||||
.addr = ADDR,
|
||||
.i2c_dev.bus = I2C_BUS,
|
||||
.i2c_dev.addr = ADDR,
|
||||
#else
|
||||
.cs_pin = CS_PIN,
|
||||
.dc_pin = DC_PIN,
|
||||
|
|
@ -97,7 +99,7 @@ void user_init(void)
|
|||
printf("SDK version:%s\n", sdk_system_get_sdk_version());
|
||||
|
||||
#ifdef I2C_CONNECTION
|
||||
i2c_init(SCL_PIN, SDA_PIN);
|
||||
i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K);
|
||||
#endif
|
||||
|
||||
while (ssd1306_init(&dev) != 0)
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
#ifdef I2C_CONNECTION
|
||||
#define PROTOCOL SSD1306_PROTO_I2C
|
||||
#define ADDR SSD1306_I2C_ADDR_0
|
||||
#define I2C_BUS 0
|
||||
#define SCL_PIN 5
|
||||
#define SDA_PIN 4
|
||||
#else
|
||||
|
|
@ -43,7 +44,8 @@
|
|||
static const ssd1306_t dev = {
|
||||
.protocol = PROTOCOL,
|
||||
#ifdef I2C_CONNECTION
|
||||
.addr = ADDR,
|
||||
.i2c_dev.bus = I2C_BUS,
|
||||
.i2c_dev.addr = ADDR,
|
||||
#else
|
||||
.cs_pin = CS_PIN,
|
||||
.dc_pin = DC_PIN,
|
||||
|
|
@ -162,7 +164,7 @@ void user_init(void)
|
|||
printf("SDK version:%s\n", sdk_system_get_sdk_version());
|
||||
|
||||
#ifdef I2C_CONNECTION
|
||||
i2c_init(SCL_PIN, SDA_PIN);
|
||||
i2c_init(I2C_BUS, SCL_PIN, SDA_PIN, I2C_FREQ_400K);
|
||||
#endif
|
||||
|
||||
while (ssd1306_init(&dev) != 0) {
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@
|
|||
*/
|
||||
#include "ssd1306.h"
|
||||
#include <stdio.h>
|
||||
#if (SSD1306_I2C_SUPPORT)
|
||||
#include <i2c/i2c.h>
|
||||
#endif
|
||||
#if (SSD1306_SPI4_SUPPORT) || (SSD1306_SPI3_SUPPORT)
|
||||
#include <esp/spi.h>
|
||||
#endif
|
||||
|
|
@ -92,14 +89,14 @@
|
|||
#if (SSD1306_I2C_SUPPORT)
|
||||
static int inline i2c_send(const ssd1306_t *dev, uint8_t reg, uint8_t* data, uint8_t len)
|
||||
{
|
||||
return i2c_slave_write(dev->addr, ®, data, len);
|
||||
return i2c_slave_write(dev->i2c_dev.bus, dev->i2c_dev.addr , ®, data, len);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Issue a command to SSD1306 device
|
||||
* I2C proto format:
|
||||
* |S|Slave Address|W|ACK|0x00|Command|Ack|P|
|
||||
*
|
||||
*
|
||||
* in case of two-bytes command here will be Data byte
|
||||
* right after the command byte.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
// shifted
|
||||
#if (SSD1306_I2C_SUPPORT)
|
||||
#include <i2c/i2c.h>
|
||||
#define SSD1306_I2C_ADDR_0 (0x3C)
|
||||
#define SSD1306_I2C_ADDR_1 (0x3D)
|
||||
#endif
|
||||
|
|
@ -67,7 +68,7 @@ typedef struct
|
|||
ssd1306_screen_t screen ;
|
||||
union {
|
||||
#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
|
||||
uint8_t cs_pin ; //!< Chip Select GPIO pin, used by SSD1306_PROTO_SPI3, SSD1306_PROTO_SPI4
|
||||
} ;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue