when I start ADC the current will be HIGH .even I UN-Initialization it .
what I have done like that below;
#define SAADC_CONFIG_LP_MODE 1
void my_adc_init(void)
{
MI_LOG_DEBUG("my_adc_init\r\n");
ret_code_t err_code;
err_code = nrf_drv_saadc_init(NULL, saadc_callback);
APP_ERROR_CHECK(err_code);
nrf_saadc_channel_config_t channel_config0 =
NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(LIGHT_CHECK);
channel_config0.reference=NRF_SAADC_REFERENCE_VDD4;
err_code = nrf_drv_saadc_channel_init(LIGHT_CHECK-1, &channel_config0);
APP_ERROR_CHECK(err_code);
nrf_saadc_channel_config_t channel_config1 =
NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(BATTRY_CHECK);
err_code = nrf_drv_saadc_channel_init(BATTRY_CHECK-1, &channel_config1);
APP_ERROR_CHECK(err_code);
err_code = nrf_drv_saadc_buffer_convert(m_buffer_pool,SAMPLES_IN_BUFFER);
APP_ERROR_CHECK(err_code);
}
void start_ADC(void)
{
MI_LOG_DEBUG("start_ADC\r\n");
uint32_t err_code;
LIGHT_PIN_control(LIGHT_CONTRL_ACTIVE);
my_adc_init();
err_code=nrf_drv_saadc_sample();//
APP_ERROR_CHECK(err_code);
}
void saadc_callback(nrf_drv_saadc_evt_t const * p_event)
{
MI_LOG_DEBUG("saadc_callback\r\n");
static uint32_t count=0;
ret_code_t err_code;
count ++ ;
if (p_event->type == NRF_DRV_SAADC_EVT_DONE)//ADC转换完成
{
MI_LOG_INFO("the BATTRY value is %d . %d V\r\n", battry_V,(battry_V-(unsigned char )battry_V)*100);
nrf_drv_saadc_uninit();
}
if(p_event->type == NRF_DRV_SAADC_EVT_LIMIT)
{
MI_LOG_INFO("ADC NRF_DRV_SAADC_EVT_LIMIT %d \r\n",count);
}
if(p_event->type == NRF_DRV_SAADC_EVT_CALIBRATEDONE)
{
MI_LOG_INFO("ADC NRF_DRV_SAADC_EVT_CALIBRATEDONE %d \r\n",count);
}
}
before I started it The current is 0.6ma
but when I start it the current becom 7ma .
Is there anything else should I do .
IS there any one can help me .