diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp index 0c18a610..7c52f179 100644 --- a/src/drivers/St7789.cpp +++ b/src/drivers/St7789.cpp @@ -12,6 +12,9 @@ St7789::St7789(SpiMaster &spiMaster, uint8_t pinDataCommand) : spi{spiMaster}, p void St7789::Init() { nrf_gpio_cfg_output(pinDataCommand); + nrf_gpio_cfg_output(26); + nrf_gpio_pin_set(26); + HardwareReset(); SoftwareReset(); SleepOut(); ColMod(); @@ -158,4 +161,11 @@ void St7789::NextDrawBuffer(const uint8_t *data, size_t size) { spi.Write(data, size); } +void St7789::HardwareReset() { + nrf_gpio_pin_clear(26); + nrf_delay_ms(200); + nrf_gpio_pin_set(26); + +} + diff --git a/src/drivers/St7789.h b/src/drivers/St7789.h index 97427753..e6305b49 100644 --- a/src/drivers/St7789.h +++ b/src/drivers/St7789.h @@ -16,11 +16,15 @@ namespace Pinetime { void NextDrawBuffer(const uint8_t* data, size_t size); void EndDrawBuffer(); + void DisplayOn(); + void DisplayOff(); + private: SpiMaster& spi; uint8_t pinDataCommand; + void HardwareReset(); void SoftwareReset(); void SleepOut(); void ColMod(); @@ -28,8 +32,7 @@ namespace Pinetime { void DisplayInversionOn(); void NormalModeOn(); void WriteToRam(); - void DisplayOn(); - void DisplayOff(); + void SetAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);