![]() |
nrfx 4.5.0
|
The sample demonstrates an advanced functionality of the nrfx_saadc driver operating in the non-blocking continuous sampling mode with internal timer.
The sample supports the following development kits:
| Board | Support |
|---|---|
| nrf52dk_nrf52832 | No |
| nrf52833dk_nrf52833 | Yes |
| nrf52840dk_nrf52840 | Yes |
| nrf5340dk_nrf5340 | Yes |
| nrf54l15dk_nrf54l15 | Yes |
| nrf9160dk_nrf9160 | Yes |
Application initializes the nrfx_saadc driver and starts operating in the non-blocking mode. In the sample the m_single_channel is configured, and the SAADC driver is set to the advanced mode with the nrfx_saadc_adv_config_t::start_on_end option enabled. With that flag, the SAADC driver automatically triggers the NRF_SAADC_TASK_START task on the NRF_SAADC_EVENT_END event.
nrfx_saadc_offset_calibrate triggers calibration in a non-blocking manner. Upon receiving the NRFX_SAADC_EVT_CALIBRATEDONE event in saadc_handler(), sampling is initiated by calling nrfx_saadc_mode_trigger() function. Consecutive sample tasks are triggered by the internal timer at the sample rate specified in SAADC_SAMPLE_FREQUENCY symbol.
The example features GPPI channel configured to test the functionality of SAADC. The endpoints are set up in a way that connects the NRF_SAADC_EVENT_RESULTDONE event with the GPIOTE task toggling the OUT_GPIO_PIN pin.
Internal timer can only be used in the non-blocking mode with only a single input channel enabled.
For more information, see SAADC driver - nrfx documentation.
To run the sample correctly, connect pins as follows:
LOOPBACK_PIN_1A with LOOPBACK_PIN_1B.To run this sample, build it for the appropriate board and then flash it as per instructions in Building and running section.
You should see the following output: