#pragma once #include "Arduino.h" #include "esp_adc/adc_continuous.h" class ADC_BME { private: uint32_t _FRAME_SIZE; uint32_t _POOL_SIZE; uint32_t _HZ_ADC; adc_channel_t _channel; uint8_t* _dma_buffer; volatile bool dma_data_ready = false; adc_continuous_handle_t handle_ADC = NULL; static bool IRAM_ATTR adc_dma_callback(adc_continuous_handle_t handle, const adc_continuous_evt_data_t *edata, void *user_data); public: void config(const uint32_t muestras_bloque, adc_channel_t channel, const uint32_t hz_adc, uint8_t* dma_buffer); void setup(); uint32_t read(uint16_t* samples_buffer); };