This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Problem getting in read separate ADC channel in nRF52832...

Hello,

I am working on nRF52832 SDK 15.3.0 in segger studio.

In my project I have 2 ADC input pin.

ADC initialization is as shown below,

#define SAMPLES_IN_BUFFER 2
static nrf_saadc_value_t     adc_buffer[SAMPLES_IN_BUFFER];

/*ADC init start*/
void saadc_callback(nrf_drv_saadc_evt_t const * p_event)
{
    if (p_event->type == NRF_DRV_SAADC_EVT_DONE)
    {
        ret_code_t err_code;
        uint8_t i = 0;

        err_code = nrf_drv_saadc_buffer_convert(p_event->data.done.p_buffer, SAMPLES_IN_BUFFER);
        APP_ERROR_CHECK(err_code);

        NRF_LOG_INFO("ADC event number: %d", (int)m_adc_evt_counter);
        for (i = 0; i < SAMPLES_IN_BUFFER; i++)
        {
          adc_buffer[i] = p_event->data.done.p_buffer[i];
          NRF_LOG_INFO("%d", p_event->data.done.p_buffer[i]);
        }
    }   
}
/**/

/*SAADC initialization*/
void saadc_init(void)
{
    ret_code_t err_code;

    nrf_saadc_channel_config_t channel_config_channel_6 =
    NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN6);

    nrf_saadc_channel_config_t channel_config_channel_7 =
    NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN7);

    err_code = nrf_drv_saadc_init(NULL, saadc_callback);
    APP_ERROR_CHECK(err_code);

    err_code = nrf_drv_saadc_channel_init(6, &channel_config_channel_6);
    APP_ERROR_CHECK(err_code);

    err_code = nrf_drv_saadc_channel_init(7, &channel_config_channel_7);
    APP_ERROR_CHECK(err_code);

    err_code = nrf_drv_saadc_buffer_convert(adc_buffer, SAMPLES_IN_BUFFER);
    APP_ERROR_CHECK(err_code);
}

And every 0.5 second I read channel by below function:

    err_code = nrf_drv_saadc_sample(); // Check error
    APP_ERROR_CHECK(err_code);

I want to read single channel, so how can I read single channel?

Give me suggestion to read single channel.  

Parents Reply Children
No Data
Related