diff --git a/components/driver/esp32c3/adc.c b/components/driver/esp32c3/adc.c index e2e036f89e..3dfb86efc0 100644 --- a/components/driver/esp32c3/adc.c +++ b/components/driver/esp32c3/adc.c @@ -293,11 +293,13 @@ esp_err_t adc_digi_start(void) //enable in suc eof intr adc_hal_digi_ena_intr(&s_adc_digi_ctx->hal_dma, &s_adc_digi_ctx->hal_dma_config, IN_SUC_EOF_BIT); - //start DMA - adc_hal_digi_rxdma_start(&s_adc_digi_ctx->hal_dma, &s_adc_digi_ctx->hal_dma_config); + //start ADC adc_hal_digi_start(&s_adc_digi_ctx->hal_dma, &s_adc_digi_ctx->hal_dma_config); + //start DMA + adc_hal_digi_rxdma_start(&s_adc_digi_ctx->hal_dma, &s_adc_digi_ctx->hal_dma_config); + return ESP_OK; } diff --git a/components/hal/adc_hal.c b/components/hal/adc_hal.c index 00647c2fb9..4389a1df2e 100644 --- a/components/hal/adc_hal.c +++ b/components/hal/adc_hal.c @@ -109,6 +109,8 @@ void adc_hal_digi_start(adc_dma_hal_context_t *adc_dma_ctx, adc_dma_hal_config_t adc_ll_digi_dma_enable(); //enable sar adc timer adc_ll_digi_trigger_enable(); + //reset the adc state + adc_ll_digi_reset(); } void adc_hal_digi_stop(adc_dma_hal_context_t *adc_dma_ctx, adc_dma_hal_config_t *dma_config) diff --git a/examples/peripherals/adc/adc_dma/main/adc_dma_example_main.c b/examples/peripherals/adc/adc_dma/main/adc_dma_example_main.c index 1adc19b328..6604e1d6e4 100644 --- a/examples/peripherals/adc/adc_dma/main/adc_dma_example_main.c +++ b/examples/peripherals/adc/adc_dma/main/adc_dma_example_main.c @@ -121,7 +121,7 @@ static void single_read(void *arg) } } -void app_main() +void app_main(void) { single_read(NULL); continuous_read(NULL);