parent
1d2d1ce6bc
commit
2abdd7be0c
|
|
@ -1,10 +1,14 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#include "esp_attr.h"
|
||||
#include "esp_err.h"
|
||||
#include "esp_log.h"
|
||||
#include "esp_adc/adc_cali.h"
|
||||
#include "esp_adc/adc_cali_scheme.h"
|
||||
#include "esp_adc/adc_continuous.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
#include "freertos/portmacro.h"
|
||||
#include "hal/adc_types.h"
|
||||
|
||||
/* ADC input pins */
|
||||
|
|
@ -19,10 +23,20 @@ static adc_channel_t channel[4] = {ADC_CHANNEL_3, ADC_CHANNEL_5, ADC_CHANNEL_8,
|
|||
/* ADC handles */
|
||||
static adc_continuous_handle_t adc_handle;
|
||||
static adc_cali_handle_t adc_cali_handle;
|
||||
static TaskHandle_t adc_task_handle;
|
||||
|
||||
static const char *TAG = "EERG";
|
||||
|
||||
|
||||
/* ADC conversion finished callback */
|
||||
static bool IRAM_ATTR adc_conv_cb(adc_continuous_handle_t handle, const adc_continuous_evt_data_t *edata, void *user_data)
|
||||
{
|
||||
BaseType_t mustYield = pdFALSE;
|
||||
/* Send notification to handler task */
|
||||
vTaskNotifyGiveFromISR(adc_task_handle, &mustYield);
|
||||
return (mustYield == pdTRUE);
|
||||
}
|
||||
|
||||
/* Deinitializes ADC handles */
|
||||
static void adc_cleanup(void)
|
||||
{
|
||||
|
|
@ -75,6 +89,12 @@ static void adc_cont_init(void)
|
|||
}
|
||||
adc_config.adc_pattern = adc_pattern;
|
||||
ESP_ERROR_CHECK(adc_continuous_config(adc_handle, & adc_config));
|
||||
|
||||
/* Configure callbacks */
|
||||
adc_continuous_evt_cbs_t cbs = {
|
||||
.on_conv_done = adc_conv_cb
|
||||
};
|
||||
ESP_ERROR_CHECK(adc_continuous_register_event_callbacks(adc_handle, &cbs, NULL));
|
||||
}
|
||||
|
||||
void app_main(void)
|
||||
|
|
@ -85,6 +105,7 @@ void app_main(void)
|
|||
/* Initialize continuous driver */
|
||||
adc_cont_init();
|
||||
/* Start the continuous driver */
|
||||
adc_task_handle = xTaskGetCurrentTaskHandle();
|
||||
ESP_ERROR_CHECK(adc_continuous_start(adc_handle));
|
||||
|
||||
/* Cleanup ADC */
|
||||
|
|
|
|||
Loading…
Reference in New Issue