Browse Source

Merge pull request #2335 from fizzyfuzzle/v4_adc_mult

Add Heltec V4 set adc.multiplier functionality
Liam Cottle 3 tháng trước cách đây
mục cha
commit
d532481f34
2 tập tin đã thay đổi với 19 bổ sung3 xóa
  1. 1 1
      variants/heltec_v4/HeltecV4Board.cpp
  2. 18 2
      variants/heltec_v4/HeltecV4Board.h

+ 1 - 1
variants/heltec_v4/HeltecV4Board.cpp

@@ -73,7 +73,7 @@ void HeltecV4Board::begin() {
 
     digitalWrite(PIN_ADC_CTRL, LOW);
 
-    return (5.42 * (3.3 / 1024.0) * raw) * 1000;
+    return (adc_mult * (3.3 / 1024.0) * raw) * 1000;
   }
 
   const char* HeltecV4Board::getManufacturerName() const {

+ 18 - 2
variants/heltec_v4/HeltecV4Board.h

@@ -5,8 +5,16 @@
 #include <helpers/ESP32Board.h>
 #include <driver/rtc_io.h>
 #include "LoRaFEMControl.h"
+
+#ifndef ADC_MULTIPLIER
+  #define ADC_MULTIPLIER 5.42
+#endif
+
 class HeltecV4Board : public ESP32Board {
 
+protected:
+  float adc_mult = ADC_MULTIPLIER;
+
 public:
   RefCountedDigitalPin periph_power;
   LoRaFEMControl loRaFEMControl;
@@ -18,6 +26,14 @@ public:
   void enterDeepSleep(uint32_t secs, int pin_wake_btn = -1);
   void powerOff() override;
   uint16_t getBattMilliVolts() override;
-  const char* getManufacturerName() const override ;
-
+  bool setAdcMultiplier(float multiplier) override {
+    if (multiplier == 0.0f) {
+      adc_mult = ADC_MULTIPLIER;
+    } else {
+      adc_mult = multiplier;
+    }
+    return true;
+  }
+  float getAdcMultiplier() const override { return adc_mult; }
+  const char* getManufacturerName() const override;
 };