From f30573a9b0fd33290ce13807714d812086ce1398 Mon Sep 17 00:00:00 2001 From: JF Date: Sat, 15 Feb 2020 15:12:29 +0100 Subject: Add support for hardware assisted vertical scrolling. --- src/drivers/St7789.cpp | 17 +++++++++++++++++ src/drivers/St7789.h | 6 ++++++ 2 files changed, 23 insertions(+) (limited to 'src/drivers') diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp index 39595dc9..1de5f5f4 100644 --- a/src/drivers/St7789.cpp +++ b/src/drivers/St7789.cpp @@ -120,6 +120,23 @@ void St7789::DisplayOff() { nrf_delay_ms(500); } +void St7789::VerticalScrollDefinition(uint16_t topFixedLines, uint16_t scrollLines, uint16_t bottomFixedLines) { + WriteCommand(static_cast(Commands::VerticalScrollDefinition)); + WriteData(topFixedLines >> 8u); + WriteData(topFixedLines & 0x00ffu); + WriteData(scrollLines >> 8u); + WriteData(scrollLines & 0x00ffu); + WriteData(bottomFixedLines >> 8u); + WriteData(bottomFixedLines & 0x00ffu); +} + +void St7789::VerticalScrollStartAddress(uint16_t line) { + WriteCommand(static_cast(Commands::VerticalScrollStartAddress)); + WriteData(line >> 8u); + WriteData(line & 0x00ffu); +} + + void St7789::Uninit() { } diff --git a/src/drivers/St7789.h b/src/drivers/St7789.h index 9ecf9f27..4341e909 100644 --- a/src/drivers/St7789.h +++ b/src/drivers/St7789.h @@ -11,6 +11,10 @@ namespace Pinetime { void Uninit(); void DrawPixel(uint16_t x, uint16_t y, uint32_t color); + void VerticalScrollDefinition(uint16_t topFixedLines, uint16_t scrollLines, uint16_t bottomFixedLines); + void VerticalScrollStartAddress(uint16_t line); + + void BeginDrawBuffer(uint16_t x, uint16_t y, uint16_t width, uint16_t height); void NextDrawBuffer(const uint8_t* data, size_t size); @@ -48,6 +52,8 @@ namespace Pinetime { RowAddressSet = 0x2b, WriteToRam = 0x2c, MemoryDataAccessControl = 036, + VerticalScrollDefinition = 0x33, + VerticalScrollStartAddress = 0x37, ColMod = 0x3a, }; void WriteData(uint8_t data); -- cgit v1.2.3-70-g09d2