Files
2026-08-11 17:37:35 -04:00

39 lines
902 B
C++

#include <Arduino.h>
#include <Wire.h>
#include "ThinkNodeM8Board.h"
#ifdef THINKNODE_M8
void ThinkNodeM8Board::begin() {
NRF52Board::begin();
Wire.begin();
#ifdef P_LORA_TX_LED
pinMode(P_LORA_TX_LED, OUTPUT);
digitalWrite(P_LORA_TX_LED, LOW);
#endif
pinMode(SX126X_POWER_EN, OUTPUT);
digitalWrite(SX126X_POWER_EN, HIGH);
delay(10); // give sx1262 some time to power up
}
uint16_t ThinkNodeM8Board::getBattMilliVolts() {
int adcvalue = 0;
digitalWrite(ADC_EN, HIGH);
analogReference(AR_INTERNAL_2_4);
analogReadResolution(12);
delay(10);
// ADC range is 0..3000mV and resolution is 12-bit (0..4095)
adcvalue = analogRead(PIN_VBAT_READ);
// Convert the raw value to compensated mv, taking the resistor-
// divider into account (providing the actual LIPO voltage)
digitalWrite(ADC_EN, LOW);
return (uint16_t)((float)adcvalue * REAL_VBAT_MV_PER_LSB);
}
#endif