Skip to content

Commit

Permalink
Refactor lambdas
Browse files Browse the repository at this point in the history
  • Loading branch information
mark9064 committed Apr 2, 2024
1 parent e760758 commit 2d6ab9e
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 20 deletions.
34 changes: 16 additions & 18 deletions src/drivers/St7789.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
});
}

Expand Down Expand Up @@ -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() {
Expand Down
4 changes: 2 additions & 2 deletions src/drivers/St7789.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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;
Expand Down

0 comments on commit 2d6ab9e

Please sign in to comment.