Nordic Semiconductor recommends to calibrate the SAADC offset voltage after reset and always when the ambient temperature changes more than 10 degrees.
Has some of Arduino Nano 33 BLE users managed to calibrate the SAADC?
I tried the following routine, but it stucks at the while-statement. Maybe some clock is required to be switched on?
adc_calibration ()
{
NRF_SAADC->TASKS_START = 1;
NRF_SAADC->TASKS_CALIBRATEOFFSET = 1;
while (NRF_SAADC->EVENTS_CALIBRATEDONE == 0) { } // Wait until calibration is ready
NRF_SAADC->EVENTS_CALIBRATEDONE = 0;
NRF_SAADC->TASKS_STOP = 1;
}
Maybe this example from the Nordic website will help you figure out what you are missing.
I suspect you need to enable the ADC but starting a sampling task is likely wrong.
If you cannot figure it out, please post a complete example (use code tags). That will make it easier to start a few tests without writing an example myself first.