I'm trying to sample analog input but there is no value after sampling.
I tested the input by configuring it as digital input and it worked correctly.
Below is code. Any help would be greatly appreciated.
// Configure ADC and enable it void adc_init( void ) { NRF_SAADC->CH[0].PSELP = 1; NRF_SAADC->CH[0].PSELN = 0; NRF_SAADC->CH[0].CONFIG = 0x20010; NRF_SAADC->RESOLUTION = 0; NRF_SAADC->RESULT.PTR = (uint32_t)adcResult; NRF_SAADC->RESULT.MAXCNT = 1; nrf_saadc_enable(); nrf_saadc_task_trigger(NRF_SAADC_TASK_START); } int main(void) { // Initialize clock clocks_start(); nrf_delay_ms(1); // Initialize peripherals gpio_init(); adc_init(); nrf_gpio_pin_write(LED_1,0); nrf_delay_ms(100); while (true) { nrf_saadc_task_trigger(NRF_SAADC_TASK_SAMPLE); while (nrf_saadc_event_check(NRF_SAADC_EVENT_DONE) == 0); nrf_adc_result = ((uint16_t)*adcResult >> 8) & 0x7F; nrf_saadc_event_clear(NRF_SAADC_EVENT_DONE); if (nrf_adc_result > 25) { nrf_gpio_pin_write(LED_2,0); } else { nrf_gpio_pin_write(LED_2,1); } if (nrf_adc_result > 50) { nrf_gpio_pin_write(LED_3,0); } else { nrf_gpio_pin_write(LED_3,1); } if (nrf_adc_result > 100) { nrf_gpio_pin_write(LED_4,0); } else { nrf_gpio_pin_write(LED_4,1); } nrf_gpio_pin_toggle(LED_1); nrf_delay_ms(250); } }