#include "EZADC.h" void init_adc(ADC* adc) { // Only use unit 1, as unit 2 is going to be deprecated. // And it does not work while using the Wi-Fi module. adc->adc_init_config.unit_id = ADC_UNIT_1; ESP_ERROR_CHECK(adc_oneshot_new_unit(&(adc->adc_init_config), &(adc->adc_handle))); } void config_adc(ADC* adc, int config_channel) { adc->adc_config.atten = ADC_ATTEN_DB_12; adc->adc_config.bitwidth = ADC_BITWIDTH_DEFAULT; adc->channel = ezadc_channel[config_channel]; ESP_ERROR_CHECK(adc_oneshot_config_channel(adc->adc_handle, adc->channel, &(adc->adc_config))); adc->adc_cali_handle = NULL; adc->cali_config.unit_id = ADC_UNIT_1; adc->cali_config.atten = ADC_ATTEN_DB_12; adc->cali_config.bitwidth = ADC_BITWIDTH_DEFAULT; ESP_ERROR_CHECK(adc_cali_create_scheme_line_fitting(&(adc->cali_config), &(adc->adc_cali_handle))); } void teardown_adc(ADC* adc) { ESP_ERROR_CHECK(adc_oneshot_del_unit(adc->adc_handle)); ESP_ERROR_CHECK(adc_cali_delete_scheme_line_fitting(adc->adc_cali_handle)); } int ez_read(ADC* adc)//, int adc_raw[2][10], int voltage[2][10]) { char* TAG = "ez_read"; ESP_ERROR_CHECK(adc_oneshot_read(adc->adc_handle, adc->channel, &adc_raw[0][0])); ESP_LOGI(TAG, "ADC%d Channel[%d] Raw data: %d", adc->adc_init_config.unit_id + 1, adc->channel, adc_raw[0][0]); ESP_ERROR_CHECK(adc_cali_raw_to_voltage(adc->adc_cali_handle, adc_raw[0][0], &voltage[0][0])); ESP_LOGI(TAG, "ADC%d Channel[%d] Voltage: %d", adc->adc_init_config.unit_id + 1, adc->channel, voltage[0][0]); return voltage[0][0]; }