Files
miliohm_meter/MilliOhmMeter_FW/src/measure_hall.cpp

42 lines
752 B
C++

#include "measure_hall.h"
TwoWire wire();
Adafruit_ADS1115 ads; /* Use this for the 12-bit version */
uint64_t lastMeasurement = 0;
float ADCvolts = 0;
void initMeasureHall(void)
{
log_i("init ADC");
if(!Wire.setPins(ADC_SDA, ADC_SCL))
{
log_e("FAILED to set i2c pins");
return;
}
if (!ads.begin())
{
log_e("Failed to initialize ADS.");
return;
}
else
{
log_i("init ADC OK");
}
lastMeasurement = millis();
}
void handleMeasureHall(void)
{
uint64_t currentmillis = millis();
if (currentmillis - lastMeasurement > MEASUREMENTINTERVAL)
{
ADCvolts = ads.computeVolts(ads.readADC_SingleEnded(MEAS_CHANNEL));
lastMeasurement = currentmillis;
}
}
float getMeasurement(void)
{
return ADCvolts;
}