ThinknodeM2Board.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "ThinknodeM2Board.h"
  2. void ThinknodeM2Board::begin() {
  3. ESP32Board::begin();
  4. pinMode(PIN_VEXT_EN, OUTPUT); // init display
  5. digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // pin needs to be high
  6. delay(10);
  7. digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // need to do this twice. do not know why..
  8. pinMode(PIN_STATUS_LED, OUTPUT); // init power led
  9. }
  10. void ThinknodeM2Board::enterDeepSleep(uint32_t secs, int pin_wake_btn) {
  11. esp_deep_sleep_start();
  12. }
  13. void ThinknodeM2Board::powerOff() {
  14. enterDeepSleep(0);
  15. }
  16. uint16_t ThinknodeM2Board::getBattMilliVolts() {
  17. analogReadResolution(12);
  18. analogSetPinAttenuation(PIN_VBAT_READ, ADC_11db);
  19. uint32_t mv = 0;
  20. for (int i = 0; i < 8; ++i) {
  21. mv += analogReadMilliVolts(PIN_VBAT_READ);
  22. delayMicroseconds(200);
  23. }
  24. mv /= 8;
  25. analogReadResolution(10);
  26. return static_cast<uint16_t>(mv * ADC_MULTIPLIER );
  27. }
  28. const char* ThinknodeM2Board::getManufacturerName() const {
  29. return "Elecrow ThinkNode M2";
  30. }