mirror of
https://github.com/liquidraver/ZephCore.git
synced 2026-09-12 14:56:02 +00:00
port adc.multiplier command
This commit is contained in:
@@ -135,14 +135,41 @@ uint16_t ZephyrBoard::getBattMilliVolts()
|
||||
return 0;
|
||||
}
|
||||
raw /= valid_samples;
|
||||
uint16_t mv = (uint16_t)((VBAT_MV_MULTIPLIER * (int64_t)raw) / 4096);
|
||||
LOG_DBG("Battery: raw=%d multiplier=%d mv=%u", (int)raw, VBAT_MV_MULTIPLIER, mv);
|
||||
int64_t mult = (_adc_multiplier_override != 0.0f)
|
||||
? (int64_t)_adc_multiplier_override
|
||||
: (int64_t)VBAT_MV_MULTIPLIER;
|
||||
uint16_t mv = (uint16_t)((mult * (int64_t)raw) / 4096);
|
||||
LOG_DBG("Battery: raw=%d multiplier=%lld mv=%u", (int)raw, (long long)mult, mv);
|
||||
return mv;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool ZephyrBoard::setAdcMultiplier(float multiplier)
|
||||
{
|
||||
#if DT_NODE_EXISTS(DT_PATH(zephyr_user)) && \
|
||||
DT_NODE_HAS_PROP(DT_PATH(zephyr_user), io_channels)
|
||||
_adc_multiplier_override = multiplier;
|
||||
return true;
|
||||
#else
|
||||
(void)multiplier;
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
float ZephyrBoard::getAdcMultiplier() const
|
||||
{
|
||||
#if DT_NODE_EXISTS(DT_PATH(zephyr_user)) && \
|
||||
DT_NODE_HAS_PROP(DT_PATH(zephyr_user), io_channels)
|
||||
return (_adc_multiplier_override != 0.0f)
|
||||
? _adc_multiplier_override
|
||||
: (float)VBAT_MV_MULTIPLIER;
|
||||
#else
|
||||
return 0.0f;
|
||||
#endif
|
||||
}
|
||||
|
||||
float ZephyrBoard::getMCUTemperature()
|
||||
{
|
||||
/* nRF52840 die temperature sensor - "nordic,nrf-temp" at 0x4000c000
|
||||
|
||||
Reference in New Issue
Block a user