mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-26 11:47:51 +00:00
58 lines
1.9 KiB
C++
58 lines
1.9 KiB
C++
|
|
#include "./HINK_E042A87.h"
|
||
|
|
|
||
|
|
#ifdef MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
||
|
|
|
||
|
|
using namespace NicheGraphics::Drivers;
|
||
|
|
|
||
|
|
// Load settings about how the pixels are moved from old state to new state during a refresh
|
||
|
|
// - manually specified,
|
||
|
|
// - or with stored values from displays OTP memory
|
||
|
|
void HINK_E042A87::configWaveform()
|
||
|
|
{
|
||
|
|
sendCommand(0x3C); // Border waveform:
|
||
|
|
sendData(0x01); // Follow LUT for VSH1
|
||
|
|
|
||
|
|
sendCommand(0x18); // Temperature sensor:
|
||
|
|
sendData(0x80); // Use internal temperature sensor to select an appropriate refresh waveform
|
||
|
|
}
|
||
|
|
|
||
|
|
// Describes the sequence of events performed by the displays controller IC during a refresh
|
||
|
|
// Includes "power up", "load settings from memory", "update the pixels", etc
|
||
|
|
void HINK_E042A87::configUpdateSequence()
|
||
|
|
{
|
||
|
|
switch (updateType) {
|
||
|
|
case FAST:
|
||
|
|
sendCommand(0x21); // Use both "old" and "new" image memory (differential)
|
||
|
|
sendData(0x00);
|
||
|
|
sendData(0x00);
|
||
|
|
|
||
|
|
sendCommand(0x22); // Set "update sequence"
|
||
|
|
sendData(0xFF); // Differential, load waveform from OTP
|
||
|
|
break;
|
||
|
|
|
||
|
|
case FULL:
|
||
|
|
default:
|
||
|
|
sendCommand(0x21); // Bypass "old" image memory (non-differential)
|
||
|
|
sendData(0x40);
|
||
|
|
sendData(0x00);
|
||
|
|
|
||
|
|
sendCommand(0x22); // Set "update sequence":
|
||
|
|
sendData(0xF7); // Non-differential, load waveform from OTP
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Once the refresh operation has been started,
|
||
|
|
// begin periodically polling the display to check for completion, using the normal Meshtastic threading code
|
||
|
|
// Only used when refresh is "async"
|
||
|
|
void HINK_E042A87::detachFromUpdate()
|
||
|
|
{
|
||
|
|
switch (updateType) {
|
||
|
|
case FAST:
|
||
|
|
return beginPolling(50, 1000); // At least 1 second, then check every 50ms
|
||
|
|
case FULL:
|
||
|
|
default:
|
||
|
|
return beginPolling(100, 3500); // At least 3.5 seconds, then check every 100ms
|
||
|
|
}
|
||
|
|
}
|
||
|
|
#endif // MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|