aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/drivers/St7789.cpp34
-rw-r--r--src/drivers/St7789.h4
2 files changed, 18 insertions, 20 deletions
diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp
index 6e5d13b1..e42592e6 100644
--- a/src/drivers/St7789.cpp
+++ b/src/drivers/St7789.cpp
@@ -29,27 +29,27 @@ void St7789::Init() {
DisplayOn();
}
-void St7789::EnableDataMode(bool isStart) {
- if (isStart) {
- nrf_gpio_pin_set(pinDataCommand);
- }
+void St7789::WriteData(uint8_t data) {
+ WriteData(&data, 1);
}
-void St7789::EnableCommandMode(bool isStart) {
- if (isStart) {
- nrf_gpio_pin_clear(pinDataCommand);
- }
+void St7789::WriteData(const uint8_t* data, size_t size) {
+ WriteSpi(data, size, [pinDataCommand = pinDataCommand](bool isStart) {
+ if (isStart) {
+ nrf_gpio_pin_set(pinDataCommand);
+ }
+ });
}
-void St7789::WriteData(uint8_t data) {
- WriteSpi(&data, 1, [this](bool isStart) {
- EnableDataMode(isStart);
- });
+void St7789::WriteCommand(uint8_t data) {
+ WriteCommand(&data, 1);
}
-void St7789::WriteCommand(uint8_t cmd) {
- WriteSpi(&cmd, 1, [this](bool isStart) {
- EnableCommandMode(isStart);
+void St7789::WriteCommand(const uint8_t* data, size_t size) {
+ WriteSpi(data, size, [pinDataCommand = pinDataCommand](bool isStart) {
+ if (isStart) {
+ nrf_gpio_pin_clear(pinDataCommand);
+ }
});
}
@@ -138,9 +138,7 @@ void St7789::SetAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) {
void St7789::WriteToRam(const uint8_t* data, size_t size) {
WriteCommand(static_cast<uint8_t>(Commands::WriteToRam));
- WriteSpi(data, size, [this](bool isStart) {
- EnableDataMode(isStart);
- });
+ WriteData(data, size);
}
void St7789::SetVdv() {
diff --git a/src/drivers/St7789.h b/src/drivers/St7789.h
index 0c73f77e..5eb60cfd 100644
--- a/src/drivers/St7789.h
+++ b/src/drivers/St7789.h
@@ -46,9 +46,8 @@ namespace Pinetime {
void SetAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);
void SetVdv();
void WriteCommand(uint8_t cmd);
+ void WriteCommand(const uint8_t* data, size_t size);
void WriteSpi(const uint8_t* data, size_t size, std::function<void(bool)> TransactionHook);
- void EnableDataMode(bool isStart);
- void EnableCommandMode(bool isStart);
enum class Commands : uint8_t {
SoftwareReset = 0x01,
@@ -68,6 +67,7 @@ namespace Pinetime {
VdvSet = 0xc4,
};
void WriteData(uint8_t data);
+ void WriteData(const uint8_t* data, size_t size);
void ColumnAddressSet();
static constexpr uint16_t Width = 240;