Files
firmware/src/platform/extra_variants/heltec_wireless_tracker/variant.cpp

34 lines
1.2 KiB
C++
Raw Normal View History

#include "configuration.h"
#ifdef _VARIANT_HELTEC_WIRELESS_TRACKER
#include "GPS.h"
#include "GpioLogic.h"
#include "graphics/TFTDisplay.h"
// Heltec tracker specific init
void lateInitVariant()
{
// LOG_DEBUG("Heltec tracker initVariant\n");
#ifdef VEXT_ENABLE
GpioPin *hwEnable = new GpioHwPin(VEXT_ENABLE);
GpioVirtPin *virtGpsEnable = gps ? gps->enablePin : new GpioVirtPin();
// On this board we are actually using the backlightEnable signal to already be controlling a physical enable to the
// display controller. But we'd _ALSO_ like to have that signal drive a virtual GPIO. So nest it as needed.
GpioVirtPin *virtScreenEnable = new GpioVirtPin();
if (TFTDisplay::backlightEnable) {
GpioPin *physScreenEnable = TFTDisplay::backlightEnable;
GpioPin *splitter = new GpioSplitter(virtScreenEnable, physScreenEnable);
TFTDisplay::backlightEnable = splitter;
// Assume screen is initially powered
splitter->set(true);
}
// If either the GPS or the screen is on, turn on the external power regulator
new GpioBinaryTransformer(virtGpsEnable, virtScreenEnable, hwEnable, GpioBinaryTransformer::Or);
#endif
}
#endif