mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 21:14:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
 | |
|  *
 | |
|  * SPDX-License-Identifier: Apache-2.0
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <stdint.h>
 | |
| #include "sdkconfig.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3
 | |
| #define ESP_ADC_CAL_CURVE_FITTING_SUPPORTED    1
 | |
| 
 | |
| #define COEFF_GROUP_NUM    4
 | |
| #define TERM_MAX           5
 | |
| #endif
 | |
| 
 | |
| #if ESP_ADC_CAL_CURVE_FITTING_SUPPORTED
 | |
| /**
 | |
|  * Calculation parameters used for curve fitting calibration algorithm error
 | |
|  *
 | |
|  * @note For atten0 ~ 2, error = (K0 * X^0) + (K1 * X^1) + (K2 * X^2); For atten3, error = (K0 * X^0) + (K1 * X^1)  + (K2 * X^2) + (K3 * X^3) + (K4 * X^4);
 | |
|  *       Where X is the `v_cali_input`.
 | |
|  */
 | |
| typedef struct {
 | |
|     uint64_t v_cali_input;                                      //Input to calculate the error
 | |
|     uint8_t  term_num;                                          //Term number of the algorithm formula
 | |
|     const uint64_t (*coeff)[COEFF_GROUP_NUM][TERM_MAX][2];      //Coeff of each term. See `adc_error_coef_atten` for details (and the magic number 2)
 | |
|     const int32_t  (*sign)[COEFF_GROUP_NUM][TERM_MAX];          //Sign of each term
 | |
| } esp_adc_error_calc_param_t;
 | |
| 
 | |
| /**
 | |
|  * Calculate the curve fitting error
 | |
|  *
 | |
|  * @param param   see `esp_adc_error_calc_param_t`
 | |
|  * @param atten   ADC attenuation
 | |
|  */
 | |
| int32_t esp_adc_cal_get_reading_error(const esp_adc_error_calc_param_t *param, uint8_t atten);
 | |
| 
 | |
| #endif  //#if ESP_ADC_CAL_CURVE_FITTING_SUPPORTED
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | 
