Hi,
I am trying to add the SAADC to an existing project. SDK 14.2 - Softdevice.
I quickly changed the existing code as follows:
static void saadc_callback(nrf_drv_saadc_evt_t const *p_event) {
uint32_t err_code;
NRF_LOG_DEBUG("saadc_callback");
}
int main(void) {
bool erase_bonds;
ret_code_t err_code;
// Initialize.
timers_init();
buttons_leds_init(&erase_bonds);
ble_stack_init();
gap_params_init(configuration.board_name);
gatt_init();
services_init();
advertising_init();
conn_params_init();
peer_manager_init();
application_timers_start();
////////////
APP_SCHED_INIT(SCHED_MAX_EVENT_DATA_SIZE, SCHED_QUEUE_SIZE);
advertising_start(erase_bonds);
nrf_drv_saadc_config_t saadc_config = NRF_DRV_SAADC_DEFAULT_CONFIG;
saadc_config.resolution = NRF_SAADC_RESOLUTION_14BIT;
saadc_config.oversample = NRF_SAADC_OVERSAMPLE_DISABLED;
err_code = nrf_drv_saadc_init(&saadc_config, saadc_callback);
APP_ERROR_CHECK(err_code);
nrf_saadc_channel_config_t channel_config = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN3);
channel_config.reference = NRF_SAADC_REFERENCE_INTERNAL;
channel_config.acq_time = NRF_SAADC_ACQTIME_3US;
channel_config.pin_p = NRF_SAADC_INPUT_AIN3;
channel_config.pin_n = NRF_SAADC_INPUT_DISABLED;
channel_config.gain = NRF_SAADC_GAIN1_6;
channel_config.burst = NRF_SAADC_BURST_DISABLED;
err_code = nrf_drv_saadc_channel_init(0, &channel_config);
APP_ERROR_CHECK(err_code);
err_code = nrf_drv_saadc_buffer_convert(adc_buf[0], SAMPLES_IN_BUFFER);
APP_ERROR_CHECK(err_code);
err_code = nrf_drv_saadc_buffer_convert(adc_buf[1], SAMPLES_IN_BUFFER);
APP_ERROR_CHECK(err_code);
NRF_LOG_DEBUG("Manual Measuring....");
err_code = nrf_drv_saadc_sample();
APP_ERROR_CHECK(err_code);
// Enter main loop.
for (;;) {
app_sched_execute();
if (NRF_LOG_PROCESS() == false) {
power_manage();
}
}
}
Unfortunately, the callback gets never been called.
Please, what am I doing wrong?
Thanks