mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-30 14:40:40 +00:00
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
|
|
#include "./SSD1682.h"
|
||
|
|
|
||
|
|
#ifdef MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
||
|
|
|
||
|
|
using namespace NicheGraphics::Drivers;
|
||
|
|
|
||
|
|
SSD1682::SSD1682(uint16_t width, uint16_t height, EInk::UpdateTypes supported, uint8_t bufferOffsetX)
|
||
|
|
: SSD16XX(width, height, supported, bufferOffsetX)
|
||
|
|
{
|
||
|
|
}
|
||
|
|
|
||
|
|
// SSD1682 only accepts single-byte x and y values
|
||
|
|
// This causes an incompatibility with the default SSD16XX::configFullscreen
|
||
|
|
void SSD1682::configFullscreen()
|
||
|
|
{
|
||
|
|
// Define the boundaries of the "fullscreen" region, for the controller IC
|
||
|
|
static const uint8_t sx = bufferOffsetX; // Notice the offset
|
||
|
|
static const uint8_t sy = 0;
|
||
|
|
static const uint8_t ex = bufferRowSize + bufferOffsetX - 1; // End is "max index", not "count". Minus 1 handles this
|
||
|
|
static const uint8_t ey = height;
|
||
|
|
|
||
|
|
// Data entry mode - Left to Right, Top to Bottom
|
||
|
|
sendCommand(0x11);
|
||
|
|
sendData(0x03);
|
||
|
|
|
||
|
|
// Select controller IC memory region to display a fullscreen image
|
||
|
|
sendCommand(0x44); // Memory X start - end
|
||
|
|
sendData(sx);
|
||
|
|
sendData(ex);
|
||
|
|
sendCommand(0x45); // Memory Y start - end
|
||
|
|
sendData(sy);
|
||
|
|
sendData(ey);
|
||
|
|
|
||
|
|
// Place the cursor at the start of this memory region, ready to send image data x=0 y=0
|
||
|
|
sendCommand(0x4E); // Memory cursor X
|
||
|
|
sendData(sx);
|
||
|
|
sendCommand(0x4F); // Memory cursor y
|
||
|
|
sendData(sy);
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|