|
|
@ -1,6 +1,28 @@ |
|
|
|
#include "battery_mgr_service.h" |
|
|
|
#include "board/board.h" |
|
|
|
|
|
|
|
#include "app_basic_service/zapp_core.h" |
|
|
|
#define BATTERY_ADC_CHANNEL 1 // 不重复即可 |
|
|
|
#define BATTERY_ADC_PIN NRF_SAADC_INPUT_AIN3 |
|
|
|
|
|
|
|
void battery_mgr_init() {} |
|
|
|
int16_t battery_mgr_get_battery_level() { return 99; } |
|
|
|
void battery_mgr_init() { |
|
|
|
// BATADC |
|
|
|
nrf_drv_saadc_config_t adccfg = NRFX_SAADC_DEFAULT_CONFIG; |
|
|
|
adccfg.resolution = NRF_SAADC_RESOLUTION_12BIT; // 4096 等于满采样率 |
|
|
|
ZERROR_CHECK(nrf_drv_saadc_init(&adccfg, NULL)); |
|
|
|
|
|
|
|
nrf_saadc_channel_config_t channel_config = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(BATADC); |
|
|
|
channel_config.acq_time = NRF_SAADC_ACQTIME_40US; |
|
|
|
ZERROR_CHECK(nrfx_saadc_channel_init(BATTERY_ADC_CHANNEL, &channel_config)); |
|
|
|
} |
|
|
|
int16_t battery_mgr_get_battery_level() { |
|
|
|
|
|
|
|
nrf_saadc_value_t value; |
|
|
|
ret_code_t err_code; |
|
|
|
err_code = nrfx_saadc_sample_convert(BATTERY_ADC_CHANNEL, &value); |
|
|
|
if (err_code != NRF_SUCCESS) { |
|
|
|
ZLOGE("nrfx_saadc_sample_convert(%d) fail err_code:%d", BATTERY_ADC_CHANNEL, err_code); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
return value; |
|
|
|
} |