Hello,
I am currently working on a project that requires to sample a 50Hz sine wave and transmit the data point over BLE, which will need around 10 - 20 samples per cycle. I modified the ADC example code using ble_app_uart provided by: https://github.com/NordicPlayground/nRF52-ADC-examples/tree/master/ble_app_uart__saadc_timer_driven__scan_mode, changing the sample rate, channel, and resolution to make it fit my project needs. I'm having 2 problems
First, I wonder how should I make sure that the SAADC on nrf52833 DK is configured to be 14 bits of resolution? In the main.c i wrote the adc init function as below.

However, in sdk_config.h, there are also several line of codes related to this. The default was 1 for SAADC_CONFIG_RESOLUTION and 0 for SAADC_CONFIG_OVERSAMPLE.

What's the difference between these two? I know that if there is no oversample is taking place and set the configuration to 14-bits will only cause the output be multiplied by 4 from 12-bit resolution output. How do I make sure that my saadc is working in 14-bit resolution?
Second, I try to reduce the sample rate (SAADC_SAMPLE_RATE constant in the code below) from 250ms to 60us to have enough data points for each cycle. The ADC behaves normally when advertising. But as soon as a connection is made from the central board or from the ble uart app, the board stuck in the connection state with LED1 on and the log terminal (im using PuTTY) no longer prints any data. The connection breaks after a few seconds after being stuck, and the central board returns to scanning. But the peripheral board with this code loaded will stay in connection state unless reset button is pressed.

I am not familiar with the design background, so I'm not sure which part I am doing wrong. The codes work perfectly fine with 1Hz wave, but start to have problem as I try to increase the operating speed. Are there any suggestions on the causes and solutions of these issues?