Hi,
I have my SAADC configured with two channels. One for my sensor and one for the battery level measurement.
I only need to measure my battery level every minute for example. But I need to measure my sensor every 30ms.
For now, in my saadc_callback function I do everything. To avoid that I created a variable which I increment every time to avoid doing battery measurement every calls.
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; err_code = nrf_drv_saadc_buffer_convert(p_event->data.done.p_buffer, SAMPLES_IN_BUFFER); APP_ERROR_CHECK(err_code); val_SENSOR = p_event->data.done.p_buffer[0]; // Measure my sensor // Send my sensor value // No need to measure battery level every time // For now update it once every minute so approximately every 2000 times the saadc is called if(battery_level_update_timer > 2000){ val_BAT = p_event->data.done.p_buffer[1]; // Measure battery level // Send new value battery_level_update_timer = 0; } else{ battery_level_update_timer++; } } }
Is there a better way than this ? For example create a saadc_callback for each channel ?
Thanks !