now?
This commit is contained in:
@@ -27,6 +27,18 @@
|
||||
#define ST7567_CMD_STATIC_INDICATOR_OFF 0xAC
|
||||
#define ST7567_CMD_NOP 0xE3
|
||||
|
||||
// Display dimensions
|
||||
#define ST7567_WIDTH 128
|
||||
#define ST7567_HEIGHT 64
|
||||
#define ST7567_PAGES (ST7567_HEIGHT / 8)
|
||||
|
||||
|
||||
typedef struct {
|
||||
void* bus;
|
||||
gpio_num_t dc_gpio;
|
||||
uint8_t framebuffer[ST7567_WIDTH * ST7567_PAGES];
|
||||
} st7567_device_t;
|
||||
|
||||
/**
|
||||
* @brief Send a single command byte to the ST7567
|
||||
*
|
||||
|
||||
@@ -17,12 +17,6 @@ typedef struct {
|
||||
uint8_t contrast; // 0-63, 0 = use a sane default (0x20)
|
||||
} st7567_i2c_config_t;
|
||||
|
||||
// Handle for ST7567 device
|
||||
typedef struct {
|
||||
i2c_master_dev_handle_t i2c_dev;
|
||||
uint8_t framebuffer[ST7567_WIDTH * ST7567_PAGES];
|
||||
} st7567_device_t;
|
||||
|
||||
/**
|
||||
* @brief Initialize ST7567 display
|
||||
*
|
||||
|
||||
@@ -5,11 +5,6 @@
|
||||
#include "driver/spi_master.h"
|
||||
#include "driver/gpio.h"
|
||||
|
||||
// Display dimensions
|
||||
#define ST7567_WIDTH 128
|
||||
#define ST7567_HEIGHT 64
|
||||
#define ST7567_PAGES (ST7567_HEIGHT / 8)
|
||||
|
||||
// Configuration structure
|
||||
typedef struct {
|
||||
spi_host_device_t spi_host; // already-initialized SPI bus (spi_bus_initialize called by caller)
|
||||
@@ -20,12 +15,6 @@ typedef struct {
|
||||
uint8_t contrast; // 0-63, 0 = use a sane default (0x20)
|
||||
} st7567_spi_config_t;
|
||||
|
||||
// Handle for ST7567 device
|
||||
typedef struct {
|
||||
spi_device_handle_t spi_dev;
|
||||
gpio_num_t dc_gpio;
|
||||
uint8_t framebuffer[ST7567_WIDTH * ST7567_PAGES];
|
||||
} st7567_device_t;
|
||||
|
||||
/**
|
||||
* @brief Initialize ST7567 display
|
||||
|
||||
@@ -22,15 +22,15 @@ static esp_err_t st7567_write(const st7567_device_t *dev, uint8_t ctrl, const ui
|
||||
|
||||
buf[0] = ctrl;
|
||||
memcpy(&buf[1], data, len);
|
||||
return i2c_master_transmit(dev->i2c_dev, buf, len + 1, ST7567_I2C_TIMEOUT_MS);
|
||||
return i2c_master_transmit(dev->bus, buf, len + 1, ST7567_I2C_TIMEOUT_MS);
|
||||
}
|
||||
|
||||
esp_err_t st7567_send_cmd(const st7567_device_t *dev, const uint8_t cmd) {
|
||||
return st7567_i2c_write(dev, ST7567_I2C_CTRL_CMD, &cmd, 1);
|
||||
return st7567_write(dev, ST7567_I2C_CTRL_CMD, &cmd, 1);
|
||||
}
|
||||
|
||||
esp_err_t st7567_send_data(const st7567_device_t *dev, const uint8_t *data, size_t len) {
|
||||
return st7567_i2c_write(dev, ST7567_I2C_CTRL_DATA, data, len);
|
||||
return st7567_write(dev, ST7567_I2C_CTRL_DATA, data, len);
|
||||
}
|
||||
|
||||
|
||||
@@ -95,16 +95,16 @@ static esp_err_t st7567_write(const st7567_device_t *dev, int dc_level, const ui
|
||||
|
||||
// blocking polling transmit: this driver is only ever called from one task
|
||||
// (ui_task), so there's no need for the queued/async SPI API here
|
||||
return spi_device_polling_transmit(dev->spi_dev, &t);
|
||||
return spi_device_polling_transmit(dev->bus, &t);
|
||||
}
|
||||
|
||||
|
||||
esp_err_t st7567_send_cmd(const st7567_device_t *dev, const uint8_t cmd) {
|
||||
return st7567_spi_write(dev, ST7567_DC_CMD, &cmd, 1);
|
||||
return st7567_write(dev, ST7567_DC_CMD, &cmd, 1);
|
||||
}
|
||||
|
||||
esp_err_t st7567_send_data(const st7567_device_t *dev, const uint8_t *data, size_t len) {
|
||||
return st7567_spi_write(dev, ST7567_DC_DATA, data, len);
|
||||
return st7567_write(dev, ST7567_DC_DATA, data, len);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user