From 751419d47e2173c7d366e817a8321d9e49dd41c5 Mon Sep 17 00:00:00 2001 From: Edvin Date: Mon, 13 Oct 2025 15:41:15 +0200 Subject: First commit --- EZADC.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 EZADC.c (limited to 'EZADC.c') diff --git a/EZADC.c b/EZADC.c new file mode 100644 index 0000000..371faf6 --- /dev/null +++ b/EZADC.c @@ -0,0 +1,46 @@ +#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]; +} -- cgit v1.2.3